一个字符串的 border 可以被划分 O ( log n ) O(\log n) O(logn) 段等差数列
- border 和 Period 一一对应
现在等价于求 Period 为等差序列。
设有 p 1 , p 2 p_1,p_2 p1,p2 的Period。
- p 1 , p 2 ≥ ∣ S ∣ 2 p_1,p_2\ge \frac {|S|} 2 p1,p2≥2∣S∣,则由 gcd ( p 1 , p 2 ) ≤ ∣ S ∣ 2 \gcd(p_1,p_2)\le \frac {|S|} 2 gcd(p1,p2)≤2∣S∣
- p 1 + p 2 ≥ ∣ S ∣ p_1+p_2\ge |S| p1+p2≥∣S∣,则首项和公差都大于
Period长度自然减半
倍增 log n \log n logn 次,所以可以划分成 log n \log n logn 个等差数列。
同理,我们可以在fail树上进行。