p3435-solution

P3435 Solution

link

画个图:

显然四个黄色部分是相等的。也就是说,黄色部分是 A 的一个 border。

根据题目,周期的长度也就是 Q 的长度,也就是 A 的长度减去它的某个 border 的长度。

现在要求这个最大,由于 A 的长度固定,要求的也就是 A 的最小 border 长度。

根据 KMP 求出来的 nxt 数组的定义,我们可以每次暴力跳 A 的 nxt,直到最后一个不为 \(0\) 的就是最小的了。

但是这样复杂度可能会退化为 \(\mathcal O(n^2)\)。思考一下,可以用类似路径压缩的方法,每次求完后把 nxt[i] 赋值为跳到的值。这样复杂度是 \(\mathcal O(n)\) 的。

posted @ 2024-03-01 09:03  iorit  阅读(6)  评论(0)    收藏  举报