Entries

スポンサーサイト (この記事を編集する[管理者用])

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://rsujskf.blog32.fc2.com/tb.php/515-7c277e4f
この記事にトラックバックする(FC2ブログユーザー)

SPOJ 4681 - Twice [TWICE] (この記事を編集する[管理者用])

Source
SPOJ 4681 [TWICE]

問題概要
長さnの文字列が与えられるので,その部分文字列として2回以上登場するもののうち最長のものの長さを求める問題.
部分文字列は区間がオーバーラップしてても良い.
nは200000以下.

解法
長さkの2回以上登場する部分文字列が存在するかどうかはrolling hashを計算しながらなぞることでO(n)で判定可能. 後は2分探索すると,合計でO(n log n)で計算可能.

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://rsujskf.blog32.fc2.com/tb.php/515-7c277e4f
この記事にトラックバックする(FC2ブログユーザー)

Appendix

Recent Articles

ブログ内検索

Ads


(プライバシーポリシー)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。