ブラシタイトル接尾辞配列の概要

大鳩は、最終的にはより多くのブログを思いつきました

hihocoder接尾辞配列1

二分法:

もちろん答えは単調であるので、我々は答えの半分を選びました

我々は\(高\)アレイではより少ないではない\(MID \)除去全ての数の、およびだろう\(高\)アレイは、いくつかの連続したセクションに分割され、そしていかなる連続期間を超えるがチェックされる(\ Kを\)

互いに素-設定方法:

まず\(高\)添字に従って\(geight \)降順の値のアレイ、各時間は最大量が設定を超える場合、二組合わせ\(K \)電流値が組み合わされ答え

大鳩は、コードを投稿されていません

hihocoder接尾辞配列2

2つの出発点間の距離を有する基がよりだけ異なるかどうかをバイナリ答え、次いでカンカン(MID \)\

hihocoder接尾辞配列3

文字列は、グループのkangkangの起源がある場合は2つの系列に配置され、2つの実行接尾辞配列、バイナリ答えを置きます

hihocoder接尾辞配列4

それは、\(B \) 8でのタイトルは、マシンが連続繰り返し部分文字列の最大数を求めていると言われていると言います

そして見つけ、列挙ループ部の長さ:私たちは、暴力を持っている((LCPをI、I + \ LEN)\) そのサイクル数を知ることができます!複雑\(O(N ^ 2) \)

ループ部列挙の長さ:形而上最適化検討(\ LEN)\、のみ列挙\(LEN \)複数の位置を

\(TMP = LCP(I、I + LEN)\)

:ときに追加の更新の答えを更新する(\ \ {FRAC LCP(I-LEN + TMP \%LEN、I + TMP \%LEN){}} + +1 LEN \)

なぜならため(I-LEN + TMP%\ LEN \) ので、右の開始位置\(TMP \)それのどの部分が長く、それがマルチサイクル部不可能Couchuないことループ部の過剰アウトを除去します

場合は\(I-LEN + TMP% LEN \) この位置にすると、マルチサイクル節することはできません、それは試合が、あまりにも一致させる必要性を全く残っていないされていないことを示し、

おすすめ

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