后缀平衡树及回文剖分

border

一个串的border定义为既是它前缀又是它后缀的串。
一个串的border的长度排序后构成log个等差数列。
对于长度大于串长一半的border而言,任意两个border相差一个周期。
对于长度小于串场一半的border而言,可以利用如下性质分析:
设border a,b,len a

回文树

一种类似于ac自动机的构建方法。注意0节点的长度是-1,它代表长度为-1的奇回文串(非常诡异)fail[1]的指向是0以方便处理。

回文剖分

由上文得,一个串的border长度为log个等差数列。又因在回文子串上考虑,故border与回文子串一一对应。假设我们考虑的是一个链底的点,那么它的fail必然在之前出现过且是一个border,并且由于等差数列和border性质,在考虑border时获得的dp值与当前用最长的回文串最后划分相同,而当前没有考虑的只有等差数列中最短的一个子串作为最后一个子串时的答案。用之更新即可。

你可能感兴趣的:(后缀平衡树及回文剖分)