シミュレーションテスト20191025

$ T1:XORの$

直接分けて考えるルックビット・コンピューティング、バイナリ分割

提供の$ A_ {i}は$ $ビットに$ I $ $ $ 1の総数の$ [L、R]を表します

各々の単純な書き込み柿寄与は$ 2 \回A_ {I} \回(R-L + 1)-2 \回A_ {I} ^ {2} $のために見つけることができます

リクエストの$ A_ {I} $の$数字は$ DPについてすることができ

 

$のT2:$石を取得

上側の手を失うことは、テーブルはわずか$ 10000 + $状態見つかっヒット

しかし、それは直接$ $あまりにもそれをヘクス巨大なプレイテーブルで(%%% $ skyh $ 301まで支払うためにテーブルに当たりません

また、ブラシテーブルブラシで優位を失うことは、上の手の意志崇拝未満であることがわかりました

我々は唯一うまく上側のハンドシフトを失って、テーブルのようなブラシに、処分前にアプリケーションに必要事項を記入その方法

 

$ T3:$の最適化

私たちは、最初の$ 1 $を見つけ、$ k個の$寄付係数セグメントは$ \午後1 $です

係数の真ん中は$ \午後2または$ 0与えられ、

そして、我々は次のフォーム$ ...... 2,0,0、-2,0,2,0 ... $を持っている必要があります

$接続されていない - それは0 $ $ $ $ + 2と2 $の後に除去されます

その後、我々は、$ dp_集合{I、Jを、K} $ $ I $は$ J $ブロック、$ K $の現在の状態の最大値と、位置を表します

$ K = \左\ {\開始{行列}
0 -1 / -2 \\
1&+ 1 / + 2 \\
2&( - 2 / -1)+0 \\
3&(+ 2 / + 1)+0
端\ {行列}右\。$

最後の転送に加えて一次元は、現在のように外側のセグメントまたはセグメントを表します

おすすめ

転載: www.cnblogs.com/mikufun-hzoi-cpp/p/11736381.html