データ構造の学習プログラム

10.1から10.7

KMP + RMQ +接尾辞配列

三つの知識質問保証70+

10.8から10.14

辞書木オートマトン+ + ACシーケンス

60 +タイトル保証

10.15から10.23

ST + Treap + LCP

60 +タイトル保証

10.24から10.30

パーティションの分割チェーン+ +ツリールートアルゴリズム

50+タイトル保証

各シナリオの知識

互いに素セット:

友人の質問のサークル

接続グラフ

他の最適化アルゴリズムの加速、あなたはこれを試すことができます

家族財産の問題、問題や親戚

 

フェンウィックツリー

最も基本的なポイントの範囲と単一のクエリの変更

微分の考えを使用してフェンウィックツリーを変更間隔

ツリー次元アレイ、より困難であり、いくつかはまた包含排除の定理を組み合わせることができます

逆転しようとしているフェンウィックツリーは:マージソートを使用しての一般的な考えを逆転ますが、個別のプラスフェンウィックツリーは、より効率的な方法であります

ツリーツリーの配列、コレクションフェンウィックツリーにツリー、リナンバリングのための一般的な方法、および新しい管轄区域のノードのレコードの数。サブツリーの重みを解決し、まだ非常に実用的なとき。しかし、このアプリケーションはスキップすることができ、ゲームの経験でスターにチェーンを使用するように、フロント建設側が必要です。

単調シーケンスを求めているフェンウィックツリーは逆の順序で、単調なアップグレード要求キューを長さを指定しました。我々は2つの同じ数字を除外する必要があり、複数の間隔は数に沿って計算されます

多くの場合、フェンウィックツリーは最大のパワーを再生するために、(接頭辞と最適化のような、そのような二項対立の回答など、)他のアルゴリズムと組み合わせることにします

 

セグメントツリー

最も基本的なシングルポイントの更新、問い合わせのシングルポイント

そして、更新間隔、間隔クエリがあります

サブセグメントの最大範囲と最大プレフィックス、サフィックス最大、最大サブセグメントと

二次元ツリーラインを用いた2次元マトリックスの範囲は、基本的なテンプレートのタイトルを行うことができます

データ統合の問題の広い範囲がありますが、その後、ツリーラインを使用します

間隔彩色問題は、ツリーラインを維持するために使用することができます

走査線の問題

異なる木及び木のラインアレイは、セグメントツリーは運用、保守の範囲とすることができるしながら配列ツリーのみ、接頭辞「操作及び」(プレフィックスとプレフィックスプロット、プレフィックスのmax-min)を維持することが可能です。

 

RMQ

最大最小間隔問題

2次元と1次元の思考のような、あります。

RMQはまた、他のアルゴリズムと組み合わせて使用​​すること

 

木のDPの問題かもDFSを使用して木の直径

 

KMP

最小の循環部を探します

祭りのサイクル数を探して

最長共通部分列を探します

文字列一致の様々なものがあります

バイナリツリー、バイナリのサブツリーはBであるかどうか

 

接尾辞配列

これは、単一の文字列を発行し、最初の接尾辞配列の構成と配列は、高さを求めます

最長ストリングの最大値は、アレイの高さを求めて繰り返し質問に重なっていてもよいです

最長のサブストリングを繰り返し問題、マスターアレイの高さの本質を重複しないかもしれません

アイデアは、サブ接尾辞配列関連の問題では一般的です

重ね合わせることは一般的に半分だけサフィックスkは、現在のセグメントが発生する可能性がありますかどうかが決定されるかのk回最長の部分文字列を、繰り返し。

カウント問題をサブストリングを繰り返し、比較的単純なSAのタイトル

ANS =Σmax(身長[I] -height [I-1]、0)

同じサブストリングの問題をカウントしないことは、N-SA [K] + 1高[K]ストリングです。

Kは、辞書的に前半を見つけるために、問題をサブストリング

L | | -k現在の法的回答ランク[1]およびランク[K + 1]は高さ=あれば連続的に反復ストリングの問題は、長さの文字列S kを列挙します。

繰り返しの大部分はサブストリングの問題は、長さkのサブストリング列挙連続的に繰り返され、各位置間のルックLCPの長さに対応する、kは繰り返し回数である最大エネルギー広がりに等しいです。

すべての文字列内の文字列の出現の問題

繰り返しk回発行し、SA +セグメントツリーのメンテナンスをサブストリングの文字列

連続部分文字列の問題のさまざまな種類の文字列は、これは「接頭辞配列」こととみなされるべきです。SA要求は、文字列を反転することであるが、具体的に、次いで得られた配列は、元の接頭文字列です。

接尾辞配列は、私はゲームはかなりそれを発見したことはありません願って、私の悪夢となっています。

 

トライ

文字列の検索の問題

単語頻度統計の問題

最長共通接頭文字列の問題

接頭文字列照合問題を検索

このような接尾辞木のような補助データ構造及びアルゴリズムの別の構造、AC自動機として

 

ACオートマトン

Lは、パターン文字列(合計長さN)、大きなテキスト及びMの長さ、抽出要件が大きなテキストから生じる各パターン文字列の位置を与えます。より低いKMPの複雑

Nあなたのテンプレート文字列と文字列を与える、あなたが尋ねるこれらのテンプレート文字列は倍の数までのテキスト文字列で表示されます

一般合成重みおよびDPとAC自動機。

これで、長さSを推測= n個の文字列を小文字どのように多くの方法組成およびDPが結合で構成します

 

Treap

私は、この言葉は、K上のクエリの大多数で使用されていることを感じ、削除、変更、およびその他の操作他の用途では見ていません

 

K上のクエリの大規模な範囲があります。

ツリーチェーン分割

 

極端な値、合計値を求めて、ツリー内のパスを変更し、この時間はすぐに木のチェーン分割を考える必要があります

ツリーチェーン分割サブツリーの問題解決

ツリーは、+セグメントツリーは、それは間隔の右側であれば、我々はポイントのエッジを有効にする必要があり、ツリーのその時点右側のセクションを維持することができる渡ります。
 

611元記事公開 ウォンの賞賛390 ビューに20万+を

おすすめ

転載: blog.csdn.net/qq_43627087/article/details/101710024