羅区P3760 [TJOI2017]とXOR

ポータル

発行されたカメの声

我々は、すべてのサブセグメントとXORアップを置きます

一緒にこのルーチン事は接頭辞カナダのビット単位で聖歌を考えています

まず、プレフィックスとは、私たちが取得することができます\(N ^ 2 \)\(20 \)ポイント

次に考えるビット、我々が見つかりました。その長いの計算のように(K \)\ビット上の\(1 \)出現数

厳密に言えば

\ [ANS = \和\ limits_ {K = 0} ^ {63} *((\和\ limits_ {I = 1} ^ {N} \和\ limits_ {J = 1} ^ {I}(S [I ] -s [J] -1)>> K \&1)\%2)* 2 ^ K \]

限り、我々はすべてのことを知っている\(1 \)の出現のパリティ数

減算が実行されますので、その検討します

我々は、セット([I] _k \ S \ ) を表し\(K \)ビットである\(0/1 \)、\ (S [I]。1〜_ {K}は\)を表し、[I](S \ \ )最初から\(1 \)のビット\()K \マグニチュードビット

もし(S [I] \)\(K \)\ビットで\(1 \) その後状況が回答を貢献しています

\(1.s [J] _k = 0 \)\(S [J] _ {1〜K-1} <= S [I] _ {1〜K-1} \)

\(2.s [J] _k = 1 \)\(S [J] _ {1〜K-1}> S [I] _ {1〜K-1} \)

もし\(0 \)

\(1.s [J] _k = 1 \)\(S [J] _ {1〜K-1} <= S [I] _ {1〜K-1} \)

\(2.s [J] _k = 0 \)\(S [J] _ {1〜K-1}> S [I] _ {1〜K-1} \)

見出さ\(\ [i]の合計 \)は、 現在のビットが保存、開口2点の重みフェンウィックツリーを考慮し、比較的小さい\(0/1 \)場合\(S [I] _ { 1〜K} \)値の数

方法2:神の魚多項式テクノロジー

セット\(F_iと\)は、各番号の出現回数である(S_I \)\プレフィックスと\(I \)発生数、\(M = \ A SUM [I] \)

それから

\(のf_i = \和\ limits_ {J = 0} ^ {MI} s_j * S_ {J + I} \)

それを変形させます

\(F_ {MI} = \和\ limits_ {J = 0} ^ {I} s_j * S_ {MI + jを} \)

この事の右側には、かなりの畳み込みのように見えます。当社は、取得するについて、それをロール\(fは\)配列フリップ

そして、数字は若干異なる、あるいは倍アップしているかを確認

おすすめ

転載: www.cnblogs.com/knife-rose/p/12617150.html