【SDOI2018抗パリンドローム文字列([ARC064 F]回転さ回文拡張バージョン)

問題の意味

  あなたの正の整数与える\(N-を\) 文字の数を見つけるために、\(1 \)する(K \)を\整数列と、文字列が長さとなるよう形成することができる\(N- \)の環状パリンドローム配列をシフトします。
  ARCオリジナルタイトル\(100 \%の\)データの\(N、\ル10 kは
^ 9 \)   SDOI適応後、\(30 \%の\)データの\を(N、K \ル10 ^ {10 } \)、\ (60 \%の\)データの\(N、K \ル10 ^ {14} \)、\ (100 \%の\)データの\(N、K \ル10 ^ {18 } \) ......

問題の解決策

\(N、K \ 10 ^ {10} \)

  ループ部の長さという条件で、パリンドローム配列を考える\(X \)場合、\(X \)は回答の次に寄与、奇数である\(X \)が偶数である場合の回答次いで貢献; FRAC \(\ X} {2} {\)
  私たちは、押して(X \)\、すべての文字列を分類し、各タイプの数をカウントします。
  セット\(F(i)は、\)セクションの最小サイクル長表す\(Iは\)パリンドローム配列の数\(F(I)\)区間の周期長表す\(Iは\) すなわち\を(私は\します)パリンドロームパリンドローム配列ストリングの新しい番号を取得するために)最小周期の区間長の正の整数倍です。
  次に\ [F(I)= \ SUM \ limits_ {D | I} F(D)\] \ [ANS = SUM \ \のlimits_ {D | N-} F(D)\時間\開始{ケース} D(D奇数)\\ \ FRAC {D} {ある 2}(dが偶数である)\端{ケース} \]
  明確\(F(I)= kは ^ {\ lceilの\のFRAC {I} {2} \ rceil} \) 我々は解決することができます\(F(D)\)
  \(Nル10 ^ {\ 10} \) 、約最大の要因(6700 \)\より。だから我々は尋ねた\(6700 \)より\(F(d)を\)

  溶液A:与える転置\(F(I)= F (I) - \和の\ limits_ {dは| I 及びd≠I} F(I)
\)   再帰\(F \)をすることができます。

  溶液II:これはメビウスの反転公式ではないでしょうか?
  式は、に変換される\(F(I)= \
和\ limits_ {D | I}ミュー\ F(D)(\ FRAC {I} {D})\)   我々は、ちょうど記載\(6700 \)複数の\(\ MU \) それは強制することができるので\(\テキスト{DFSを} \ ) 算出される(\ \ MU(I))\
  その後、直接計算\(F(I)\)することができます。

  複雑\(^ O 2(6700)\)

\(N、K \ 10 ^ {14} \)

  見出さ\(\テキスト{DFSを} \ ) とき各素因数のみによって\(0 \)または\(1 \) A、によって\(2 \)番目のワード\(\ MU \)値となりますこれは、となりました\(0 \) A。
  このように複雑になり\(O(17280 \タイムズ12は、^ {})\ 2である)、その数は、一般に、カードにバインドされていない、これ以上の約数がいっぱいです\(17280 \) カードは頻繁にすることができます(\します60 \)ポイント?

\(N、K \ 10 ^ {18} \)

  私は理解していない、SCBのブログを移動してください。

おすすめ

転載: www.cnblogs.com/scx2015noip-as-php/p/11519710.html