[题解] P3526 [POI 2011] OKR-Periodicity

· · 题解

记号

用大写表示串,小写表示串的长度。用希腊字母表示周期,以示区分。

Border 与周期互化

若串 S 有长度为 p 的 border,则有长度为 \pi = |S|-p 的周期。

弱周期引理

若串 S 中有周期 \Pi, \Chi,其长度为 \pi, \chi,且 \bold{\pi+\chi} \le |S|,则 \gcd(\pi, \chi) 为周期。

证明:由周期关系有 s_i=s_{i\bmod \pi}=s_{i\bmod \chi},由裴蜀定理,仅当 s 存在周期 \gcd(\pi, \chi) 时能满足条件。

分类讨论

f(S) 为由 S 构造出的串。取 S 的最小周期串记为 \Alpha,则 S 形如 \Alpha \ldots \Alpha \Alpha',其中 \Alpha'\Alpha 的前缀。我们希望能通过周期或 border 引入的相等关系进行递归构造。

\Alpha 完整出现至少两次

由周期性,我们希望仅通过求 f(T),T=\Alpha \Alpha ' 就能得到 f(S);此时最小性已经满足,下面证明这样构造的串 \Beta \ldots \Beta \Beta ' 与原串具有相同的 border 集合。

p 为讨论的 border 长度。

\Alpha 完整出现不超过一次

此时再递归 \Alpha\Alpha' 没有意义。设 a=n-|\Alpha|S 的最长 border,则 S 形如 AXA,且 x\ge 1。最好能先递归求 f(A) 再确定 X 对应的串。不妨大胆猜测 X 对应的串可以全部填 0,记 f(S)=BYBY 全 0。

但是这样可能引入 > a 的 border,需要调整。字典序最小的调整方法是将 Y 最后一位改为 1,记为 Z下面证明 BZB 一定合法

BYB 的最长 border c > a,其对应的周期为 \sigma=n-cBYB 的最小周期。由 border aBYB 有周期 \alpha=n-a=a+x,此时 \sigma \mid \alpha,即 \SigmaBY 的整周期。

此时 \sigma >x\Sigma=DY,其中 D 是非全 0 的串。则 BYB=(DY)^kD\red{Y}(DY)^kDBZB=(DY)^kD\blue{Z}(DY)^kD

反证:设 BZB 有 border e>a

故得证。

每次递归规模减少到不超过 \frac 2 3 n,时间复杂度 O(n)