AtCoder Regular Contest 077 F. SS
本質的な補題を証明してから解いたら3時間ぐらいかかった。 解説見たらその部分「周期の最小性より」で省略されてたけど、そんな単純に成り立つものだと僕は思えてないんだよね、そんな簡単に証明できる??? ということで補題と証明を以下に書きます。
証明
は明らかに のborderであるから、これ以上長いborderがないことを示せば良い。 とおけば、正整数を用いて、 である。
以下、3ケースに場合分けする。
a)
として、↑がborderであると仮定する。 に注意すれば、これは
と同値である。 この等式の両辺の最後の文字に注目すると
から は周期。 他方、両辺の文字目から文字目までに注目すると
より、は周期。 の最小周期をとおいておく。当然、
が成立する。 であることに気をつけると、そのようなが存在するには、が必要。 今、明らかにであるから、周期性補題からも周期になる。
これをとおく。 も以下であるから、に対して同様に周期性補題を用いれば、はの倍数である事がわかる。 したがって、も全ての倍数。これは、の周期としてが取れることを意味するからの最小性に反する。 以上からこのようなborderが取れることはない。
b) 未満の周期のうち、比較的短いもの
が未満の周期があると仮定する。すなわち、borderとして
という形になっているものを考える。 この時、も同様に周期を持つことに気をつける。
このとに対してに関する周期性補題を適用出来る場合を考える。これがケースb)である。 すなわち
が成立する時を考える。 この時、が成立するからはの倍数。
したがってに対応するborderは
のような形をしている。 borderの最後の文字について注目すると、suffix側のborderは明らかにである。 他方、prefix側は(の後に続いているわけなので)である。 これはの双方がの周期であることを表す。よって、ケースa)の議論と同様にして矛盾する。
c) 未満の周期のうち、長いもの
ケースb)では周期性補題が利用できるほど周期が比較的短い場合には矛盾するということが言えた。 残りは周期性補題の不等式が成立しない場合である。すなわち、
であるケースを考える。 は少なくとも、
より以上の長さを持つ。 すなわち、に対応するのborderは高々程度の長さしか持たない。 よって、borderは
のような形で表せる()。 の時、すなわちのように表せる場合は、borderの先頭文字および末尾文字に注目すると、 がの周期となりa), b)と同様に矛盾する。
の時、prefix側のborderはのprefixである。 したがって、このborderの末尾p文字に注目すると、がの周期であることが分かる。 よって、これも同様に矛盾する。
以上で全てのケースを尽くせているから、 の最長borderがであることが示された。
割と、こうやって場合分けをしないと、borderや周期を考えるまではいいけど、 どのタイミングでにぶつかるかが不透明すぎて頭が爆発すると思っている。 ただ議論自体は全部同じように進むので、もしかしたら慎重に注目する場所と長さを選べば全部ひとまとめで考えられるのかなあ、いやそんなことない気がする
周期性補題って本質的には「周期が十分短いなら最小周期の倍数」って定理なわけだけど、長い周期に関しては何も言えないし、今回は最小周期がとても長いということをいいたいわけなので、それより少しだけ短い周期に関してはこうやって慎重に考えるしかないと思う