ZROI 19.08.01ツリーデータ構造

1.概要

  • LCT

  • パーティション鎖(ツリー断面)

  • ポイント/エッジ分割統治

2.ポイントの分割統治

  • 木は、ポイントがある\(0/1 \) 最も遠い2尋ね、数回改正\(1 \)までの距離を。

各サブツリーヒープメンテナンスが点在木、構築された:①最も\(1 \)の距離を、その息子①ヒープの最上部の②各;

Meikeグローバルメンテナンスサブツリーヒープ②二大値は、各変更暴力を変更することができます。

時間複雑度\(O(N \ログ^ 2N)\) 点在している実質的に動的\(\ ^ 2 \)ログを介してより一層容易に複雑さを...... \(10 ^ 5 \) 小定数マイクロ預金の可能性?)。


  • 以下の時点からその都度求め木、ポイントに少し右、\(k個\)ポイントと右。

サブツリーサーチ直接尋ねられたとき、各ポイントは、データ構造の深さにすることができます(ここではフェンウィックツリー)を維持し、父はアップ再帰的。

時間差であると計算されるので、各点は、それぞれの息子のための別個フェンウィックツリーを維持します。


  • ツリーは、程度は以下である(\ 20 \) 重心を求める権利と、ポイントを変更する権利をサポートします。

それは父親でない場合に明らかに来て、重心の移動中にツリーを考える(size_y> \ FRAC {size_x \ \} {2}) サブツリーの。

点線の木は、このプロセスを最適化することができます。

すべての最適を見つけるために、すべての人の息子を掃引、再帰をすることができ、中心の分割統治に直接ジャンプ。

重心が凸状であるため、精度を確保します。


クエリを考慮すると、点在浅いポイントに見出さツリー\(Y \)は、ポイントは、これは保持満たすことである\([L、R]を\ ) の後に\(X \)全て、通信ブロックに含まれます\([L、R]は\ ) の間の点\(Y \)サブツリーです。

するための\(Y \)中心区画の各点について\(Iは\) メンテナンスから\(Iは\)(Yを\)\点の最大値と最小数のパスに\(\ MAX_I、\ min_i \ )

見出さポイント\(Iは\)通信ブロック内の十分条件である([\ min_i、\ MAX_I] \ subseteq [L、R&LT] \)\二次元古典的な問題のいくつかの点に変換します、。

3.チェーン分割統治

  • \(\ N-)木の点は、各側が求めて、カットオフカットまたはしないことができる\(1 \)ドット通信ブロックサイズを正確に\(K \)プログラムの数、モジュロNTTの弾性率。\(N- \のLeq。5 ^ 10 \)

明らかに、より激しい直接バックパック、点の各対は、あろう(LCA \)を\複雑さ、全体的な複雑生成\(O(^ N-2)\)

観測方程式DP ({son_xの\のJでprod_ Y \ ^ {}} F_ {X、J} = \ = sum_k(F_ {Y、K} + [K = 0])\)\はるかに見出さボリューム等、製品。

ツリー光の息子、チェーンの分割を考慮し、征服\(サイズ\)であり、\(O(N \ログN )\) レベル。

だから、重鎖のために、あなたは再帰的に軽鎖生成機能のすべての人の息子を見つけることができ、それが配列に問題となる、これは、パーティションのFFTを解決することができます。全体的に複雑\(O(N \ 3N ^)\でログ)が、定数が小さいです。


有名な癌の問題。(スプレイとtreapはわずかに圧縮トライのために最終的には、多くの場合、カードであり、とき、私はこの質問を書きました)

アイデアは、比較的単純なルートパーティション+です\(\ログ\)のデータ構造。

大ドットの各々 、共有均等修飾の数について見出さ\(O(\ SQRT N) \) 倍、共有等しく求めの数だけ\(O(1)\)の代わりに、ブロック使用回数、\(\ログ\) データ構造を\(O(N \ sqrtのN-)\)

コレクション自体と父のこの重い息子だけでなく、各ポイントのために、別の思考メンテナンス光の息子を、それを入れてください。ライン上の時間暴力ホップ重鎖を変更します。

シングル修正\(\ログイン^ 2N \) 尋ねる\(\ \ N-ログ)(実際にはあります\(\ログ\)アプローチ)


素朴なアイデアを比較質問が最大クロス製品需要のチェーンになり、オフライン操作ツリーを構築することです。しかし、凸包を直接維持である(\ \ \ ^ 3 Nをログ ) (+凸包上の2点を設定+ツリー断面セグメントツリー/)から。

プロセスの重鎖で観察されたジャンプは、最後の時間に加えて、毎回重鎖上のプレフィックスは、あなたが重いメンテナンスプレフィックス凸包のそれぞれに対して、オフラインで直接暴力を求めることができ、二つの部分がされていることがわかった(\ログ\します2N ^ \)


  • \(N \)ツリーの点\(q個の\)操作は、ユニコム最大重量サブグラフを求め、ポイントを変更する権利をサポートします。\(N-、Q \ ^。5のLeq 10 \)

行う方法のシーケンスを考えてみましょう、それは古典的なセグメントツリーの問題を見つけることです。

行われ、ダイナミックDPことが判明し、木にそれを移動しました。

4.LCT

  • 動的DP 2つの操作は同じ複合形状とすることができるが、操作の異なる係数は、動的DPを維持するために使用することができた後に式が、すなわち、と組み合わせることができるDP限り。

  • \(N- \)個々の、\(0 \) \(。1-N- \) 一人一人が持っている\(a_iをを\) 初期ある\は(X = 0 \) それぞれが順序に従って行わすることを選択できる(X \)を\なる\((a_iを+ X)を\ N-MOD \) 最終的な\(X \)が勝ちます。みんなの戦略は次のとおりです。のみ変更\(X \)勝利、そして一定の\(xは\)勝てないとき、彼はなります。\(Q \)の操作、それぞれの変更\(a_iを\)出力動作の後に獲得します。

各ラウンドは、ハンズオンの人を持って、周りと手をしなければならない(a_iを-I =>私は\)\します

場合は\(I \ GEQ a_iを\)は、その後、\(私は\)がする(I-a_iを\)\接続されている側を、全体の構造は、森を形成しています。

すべてのリーフノード\(1 F_iと= \) 中間ノードである(\ \ MAX(0、1- \ sum_ {son_iにおけるJ \ F_J} \)、LCTは動的DPを維持します。


  • \(\ N-)サボテン点、右側と、ポイント\(m個\)操作、または二点間の1つの質問右側最大流量の各変形例を。

最大流=最小割。

最小値が最小カットリムを削除した場合、それは確かにリング、それを削除することを望むかもしれないし、その重量は、リングの反対側に追加され、LCTを維持することができます。

元牙ツリーは、行うことができますエッジに合理的な権利を設定します。


  • \(\ N-)ツリーの点、\(Q \)操作:重量増加の点、パス(重量)を逆転し、呼び掛けパス/最大/最小。

それぞれ十分スプレイ、重量および形状を維持プレオーダー1つの対応を確実にするために、直接重みに変更を行う2つのスプレイを内蔵。


他のルートではライン上で直接LCTのメンテナンスにLCTまったく同じ操作や変更操作を見つけました。追加情報のツリー状の配列を維持する必要性。


  • そこ\(A、B、C \ ) 三点セット、各\(N_A、N_B、N_C \ ) ポイント。前記\(\カップB、 \カップC \)は、 2つのツリー、構成\(\)のない内部側。ランダム\(I、J \)削除\を([B_1、B_i]、[C_1、C_J] \)、Q \(A \)まだ確率ユニコム。\(n_i \のLeq 10 ^ 5 \)

列挙\は(私が\) 明らかに\(J \)モノトーンは、ポインタを倍増させることができます。以下のための\(\ AB)追加、時間を削除する権利つつ、の間の各エッジ\(AC \)エッジ削除\(AB \) LCTだけメンテナンス、削除する最も早いうち側。

私はそう長くのための水問題について、なぜこの話を知りません。

おすすめ

転載: www.cnblogs.com/suwakow/p/11375070.html