• 2024-04-04P3435 [POI2006] OKR-Periods of Words
    原题链接题解1.Q是S的前缀2.Q!=S3.S是QQ的前缀,且S可以等于QQ4.从S中挖掉Q后剩下的部分与Q(s)的前半部分重合,也就是公共前后缀5.要让Q尽可能长,就要让公共前后缀尽可能短(非零)细节请看代码解答一些疑惑:为什么不能直接求最短公共前后缀,而是要先求最大公共前后缀?code#include<b
  • 2024-03-01p3435-solution
    P3435Solutionlink画个图:显然四个黄色部分是相等的。也就是说,黄色部分是A的一个border。根据题目,周期的长度也就是Q的长度,也就是A的长度减去它的某个border的长度。现在要求这个最大,由于A的长度固定,要求的也就是A的最小border长度。根据KMP求出来的nxt
  • 2024-02-20P3435
    P3435设\(Q=a[1,i]\),左端绿色虚线终点为j则\(a[1,j]==a[i+1,n]\),因为他们位于Q的相同位置联想到kmp的next数组\(len_Q=n-next[j]\)只要找到最小的且非0的\(next[j]\)就可以最大化\(len_Q\)类似失配时的操作,递归找j对应的最小next