2026年4月24日金曜日

Educational Codeforces Round 189 (Rated for Div. 2)

 Eまで五完。

コンテスト後のツイート

F. String Cutting

 解説AC。
 コンテスト中に考えていた方法はダメだった。誤読で間違えただけだったら、ちょっと直せば通るはずだけどそれでは無理で、根本的に間違っていた。

 気付いていなかったのは、
・各開始位置indexについて、S[index:?]を考えるとき、n,k,lの条件から?は定まる。(そもそもその開始位置では条件を満たさないものもあるが、それも判定できる)

 ということ。
 言われてみれば当たり前ですね。

 これを使えば、Suffix-arrayとLCP配列を使ってどの開始位置が最適かを調べることができる。
 Suffix-array配列をSAとすると、SAの中でできるだけ後ろにある開始位置が良い。その長さがLCP配列より大きければそれが答え。そうでなければ、SAの一つ前の開始位置のものの方が良いかもしれないので比較していけば良い。







0 件のコメント:

コメントを投稿