私は、件名を望んでいません。。問題を整理するために数分かかる記録していますか?。。問題のメソッドを実行する方法について胡口。。
- CF52C円形RMQ
セグメントツリーはチェックマークRMQを築きます。。
- P1840色Axis_NOIガイド2011増加(05)
黒い点は、0リットル〜R変性割り当てられ
、各時間間隔でセグメントツリーをし、クエリ仕上げを変更します
CF1234 A〜F Fのゲーム差5minACタイトル...(言わないDIV3されているので...)
P1640 [SCOI2010]連続攻撃ゲーム
両方の属性が与えられ\(A \) 、\(B \)が最長の連続したシーケンスの構築をお願い
厳しい満たすために貪欲な表情を\(\の当量bは\)による\(\)をファック、その後整理します。
複雑\(N \ログのn \)
- P2071の座席配置
誰もが行数、各座席2人を撮りたかったです。。
二つの点に分割各行。。
みんなでソースネットワーク流れ、その後も、人々の側面とは、二つの側面から排出される各解体の両側最後の点を接続しても、シンク
を実行\を(dinic \)出てきました。。
- P3979遠い国
ツリーの他の断面ルートにおける
第2の動作鎖振動子3動作サブツリーのルート変更要求RMQの動作に。。
議論ルート分類のために検討因为链是树中唯一的
ルートの独立位置は、オペレータの同じ鎖でない分類は、2つの論じていない
第3の動作位置をルートと考えられる(断面積を変化させるツリーのルートの魂?..)
inline int getfa(int x , int k) {
for(register int i = 20 ; i >= 0 ; i --)
if(k >= (1 << i)) k ^= (1 << i) , x = fa[x][i] ;
return x ;
}
int root = 1 ;
inline void getans(int x) {
if(x == root) {
printf("%lld\n" , mn[1]) ;
return ;
}
int y = 0 ;
int p , q ;
if(d[x] < d[root] && fa[y = getfa(root , d[root] - d[x] - 1)][0] == x) {
p = Query(1 , id[y] - 1 , 1 , n , 1) ;
if(id[y] + size[y] <= n) q = Query(id[y] + size[y] , n , 1 , n , 1) ;
else q = INT_MAX ;
printf("%lld\n" , min(p , q)) ;
}
else printf("%lld\n" , Query(id[x] , id[x] + size[x] - 1 , 1 , n , 1)) ;
}
デフォルトのルートが開始され、DFS1は、彼のルーツを変更し、比較がうまくなるようにします。。
複雑\(n個の\ログ^ 2のn \)
- P1963変換の[NOI2009]配列
質問は、辞書編集最小シーケンス番号を求める二つの数に拡張することができ、直接二部グラフマッチングを考慮することを意図しています。。
建設の値によって、2つの数字が小さい側を入れて(前方星がかかとの上に頭..です)、その後、辞書を使い果たした後、確実に最小の順です。。
- P1758 [NOI2009]パイプは、ビーズを取ります
探している\(\ sum_ {I} = ^ {TOT。1} {2} cnt_i ^ \) \(TOT \)は、文字列の総数が構成することが可能です。。\(CNTは\)文字列の出現回数で
来る遷移方程式は、
int len = i + j - k ;
if(a[i + 1] == a[k + 1]) f[(i & 1) ^ 1][j][k + 1] = (f[(i & 1) ^ 1][j][k + 1] + f[i & 1][j][k]) % Mod ;
if(a[i + 1] == b[len + 1]) f[(i & 1) ^ 1][j][k] = (f[(i & 1) ^ 1][j][k] + f[i & 1][j][k]) % Mod ;
if(b[j + 1] == a[k + 1]) f[i & 1][j + 1][k + 1] = (f[i & 1][j + 1][k + 1] + f[i & 1][j][k]) % Mod ;
if(b[j + 1] == b[len + 1]) f[i & 1][j + 1][k] = (f[i & 1][j + 1][k] + f[i & 1][j][k]) % Mod ;
スクロールビットメモリアレイの最適化\(N ^ 2 \)時間\(N ^ 3 \)
- P4130 [NOI2007]ネックレスファクトリー
もっと聞いオペレーティング\(ODT \)速く走るように見えますか?。。とにかく、問題は比較的早いです。。この位置についての手の投影によって保守区間ツリーに問題が自分自身
と、色と回数の合計数の色の構造とそれを周りに保つ-それは考えるためにもう少しのリングであるので、最後。
inline void Make(int & x , int & y) {
if(! rev) {
if(x >= tr + 1) x -= tr ;
else x = n - tr + x ;
if(y >= tr + 1) y -= tr ;
else y = n - tr + y ;
}
else {
if(x <= tr + 1) x = tr - x + 2 ;
else x = tr + n - x + 2 ;
if(y <= tr + 1) y = tr - y + 2 ;
else y = tr + n - y + 2 ;
} return ;
}
複雑\(N \ログのn \)
- P2264ラブレター
文字列のシミュレーションの質問?。。言わないでください
- P3690 [テンプレート]リンクカットツリー(ダイナミック木)
LCTボード(とにかくバックプレーンの娘が逃げます)
- P2147 [SDOI2008]洞窟の測量
LCTボードに直接エッジオフ、質問にもエッジ。。次に\(FindRootでの\)は、通信回線か否かを判定する。。
- P2173 [ZJOI2012]ネットワーク
暴力のアイデアは、20 LCTを建てました。。
3つの操作
ノードの重みを変更するには、
直接エンド変更\(スプレイ\)をビンについて
の片側の色変更
、元の場所にこれらのエッジを\(カット\)別のLCTのオフ\(リンク\)起こったことに関して、ハンは現れない(MAP \)\不十分保存することが
ノードvの重み内のノード間の単純なパスに、エッジの色cからなるすべての可能なノードuと最大直接クエリ図を\(スプリット\)それを見つける\(RMQ \)問題を。。
- P4867 Gty二つの配列力の姉妹
私は、データが癌であると思いますか?。。その後、私はそれを試してみました
直接のMoチームプラスフェンウィックツリー水が通過しました。。
それは使用することです\(CNTの\)統計が拠出を減算するための時間1 0の増加に寄与するよう出現の倍の数を。。
P4271 [USACO18FEB]新バーンズ
おそらく、質問の意味は、最大距離の通信ブロック内の他のポイントには、2つの通信ブロック、クエリ点をマージすることで
バックハンドを書く直接LCT。。ダイナミックなメンテナンス手。。