(以下字符串下标从0开始,并定义$2s=s+s$) 考虑$f(S)$,即令$l=\max_{2i<|S|且S[0,i)=S[|S|-i,|S|)]}i$,则$f(S)=S+S[l,|S|-l)$ 由于次数足够多,先做一次$S=f(S)$不影响答案,因此假设原串为$2S$(这个$S$不同于初始的$S$) 考虑$f(2S)$,类似的即令$l=\max_{i<|S|且S[0,i)=S[|S|-i,|S|)}i$(最长非自身的border),则$f(2S)=2(S+S[0,|S|-l))$ 构造一个新…