[NOIPシミュレーションテスト]:(高速電力+数学)と

タイトル説明

$ $ N-与えられた正の整数$ A_1、A_2 ... A_N $と素数MOD。最初の$ 1 $のための変数$ xには$。$ M $操作は、次に$ X = X \回ランダムに$ a_iを$ $ $ n個に選択するたびに行われ、a_iを$。M Q $ X $ $ $その後の操作の目標値。答えは小数精度の{A}、{B} $として$ \ FRACを表現しなければなりません。$の$ $ Bが$はと大であってもよく、それは出力する必要があるだけ$ \倍B ^ {{} ^ 9 + 5 10} $ {$結果、モールド10 ^ 9 + 7} $の。


入力形式

三つの整数$ N、M、MOD $の最初の行。
次の行の$ n $スペース正の整数$ A_1、A_2 ... A_N $を分離しました。


出力フォーマット

整数回答の列。


サンプル

サンプル入力

2 1 3
1 2

サンプル出力

500000005


データ範囲とヒント

最初のテストポイント$ 1 $:$ MOD = 2 $。
$ 2 $テストポイント:$ N = 1 $。
最初の$ 3,4,5 $テストポイント:$ M \ leqslant 1,000,1 \ leqslant MOD \ leqslant 300 $。
最初の$ 6,7,8 $テストポイント:$ 1 \ leqslant MOD \ leqslant 300 $。
全ての試験点について:$ 1 \ leqslant a_iを<MOD 、MOD $ 素数$ 1 \ leqslant MOD \ leqslant 1,000,1 \ leqslant n個の\ leqslant {10} ^ 5,1 \ leqslant m個の\ leqslant {10} ^ 9 $。


呂先生は、あなたが数学を教えるため
素数$ Pの$原始根$ gは$を満たす$ 1 \ leqslant RT <Pの$ 、 および$ RT $ $ 1 $番目、$ 2 $番目の$ ...(P-1)$回下型のパーティの$ P $の意義は$ 1から$ $(P-1)$のすべての整数の上に取ることができます。
オイラーの定理:素数$ pに対して、1 \ leqslant X < P $ $ X $は$ P $ $ $ 1 $の下に金型内の電力番目のいずれかの$(P-1)を意味しているです。
どうやら、$ 1 $の力の元のルート、$ 2 $番目の$ ...(P-2)$ $ P $の下で電力モードでの電力だけでなく$(P-1)$を意味$ 1 $です$ 1 $のための下型$ P $の意義。
これは、必要かつ十分な条件の数は原始根になるもあります。


問題の解決策

最初の$ 1 $テストポイント:

$モッズ= 2 $は、慌てる必要はありません、MOD $は$ 1 \ leqslant a_iをを<モッズ$、そして$ a_iを$ $ 1 $でなければならないので、$ X $は$ 1 $直接$であるため、$、$ 0例の$になります行って考えていませんプット( "1");の戻り0; $十分。

最初の$ 2 $テストポイント:

$ N = 1 $、うまく外にあなたが唯一の直接数、非常に高速のパワーを選択することができますので。

最初の$ 3,4,5 $テストポイント:

$ X $ $ $ J確率の動作を示す後$ DPの$、定義された$のDP [I] [J] $ $ I $を考えてみましょう。

$ DP [I] [J \時間[K] \%MOD] = \和の\ limits_ {k = 1} ^ NDP [I-1] [j]は$:その後、我々はDP $ $式を書くことができ。

時間複雑:$ \シータは、$(n回のM \回MODを\します)。

しかし、彼は$ 3,4,5 $ 3つのテスト・ポイントなど、明らかに$ T $ダンス、の$ n $の範囲を限定するものではなかったが、その後、私たちはこの$ DP $を最適化するために検討すること。注意しました

そして、ことに注意してください$ 1 \ leqslant a_iを<MODの$ので、ここから起動しようと、MOD-1 $ a_iをを$異なる$最大$の合計があるでしょう。

配列$和を開く[i]は$ $ I $の記録時間、この番号が表示されます。

那么$DP$式子即可转化为:$dp[i][j\times k\%mod]=\sum \limits_{k=0}^{mod-1}dp[i-1][j]\times sum[k]$。

おすすめ

転載: www.cnblogs.com/wzc521/p/11256711.html