【学习笔记】最小回文分解

-1. 瞎BB

我:哎Query教我一下最小回文分解好不好?

LQY:我不会啊。

我:那你那个\(O(nlogn)\)的解法哪来的?

LQY:那个是优化dp.

事实证明那就是最小回文分解,LQYtxdy 于是这篇blog会搬运一些LQY的ppt

0. 定义

  • 最小回文分解:顾名思义,就是把\(s\)分解成尽量少的段,使每段都是回文串。

  • \(border\)设有一个字符串\(s\),我们把既是\(s\)的前缀又是\(s\)的后缀的字符串称为\(s\)\(border\).

  • 阶段:设字符串\(x=uy\),其中\(x,y\)都为回文串且\(y\)\(x\)的真后缀时,我们把\(|u|=|x|-|y|\)称为\(x\)的一个阶段。特别的,如果\(y\)\(x\)的最长回文真后缀,那么\(|u|\)\(x\)的最小阶段。

1. 引理

引理1:假设\(y\)是回文串\(x\)的一个\(border\),则\(y\)也是个回文串。

引理2:假设\(y\)\(x\)的一个\(border\),且\(|x|\leq 2|y|\),则\(x\)是个回文串当且仅当\(y\)是回文串。

这两个引理证明都挺显然的。

引理3:假设\(x\)是个回文串,\(y\)\(x\)的最长回文真后缀,\(z\)\(y\)的最长回文真后缀,设\(x=uy,\;y=vx\),则有

  • 引理3-1:\(|u|\geq |v|\)
  • 引理3-2:如果\(|u|=|v|\),则\(u=v\)

  • 引理3-3:如果\(|u|>|v|\),则\(|u|>|z|\)

证明:

显然\(y\)\(x\)的最长回文\(border\)

于是设字符串\(u',v'\),满足\(x=uy=yu',y=vz=zv'\)

  • 证明3-1

    假设\(|u|<|v|\),由图知,则有\(|u|\)\(y\)的最小阶段,与\(|v|\)\(y\)的最小阶段矛盾。

  • 证明3-2

    由证明3-1图知,\(v\)\(u\)的前缀,显然当\(|u|=|v|\)时,\(u=v\) .

  • 证明3-3

    首先\(|u|\geq|y|\)时显然得证。

    假设\(|u|<|y|,|u|>|v|\),且\(|u|\leq |z|\) . 设字符串\(u',v'\),满足\(x=uy=yu',y=vz=zv'\) .

    因为\(|u|\leq |z|\),所以\(2|z|\geq|uz|\),根据 引理2 得,\(uz\)是个回文串。又有\(|u|>|v|\),所以\(|v|\)\(|x|\)的最小阶段,与\(|u|\)\(|x|\)的最小回文分解矛盾。

好的于是前置的引理就全部证明完了~

2. 最小回文分解

终于进入正题了吗

普通的求回文分解的办法是一个\(O(n^2)\)\(\texttt{dp}\) : 设\(dp[i]\)表示以\(i\)结尾的字符串的最小回文分解,则有\(dp[i]=min_{j<i,j\in P_i}\{dp[j]+1\}\),其中\(P_i\)存的是满足\(s[j+1…i]\)为回文串的\(j\) .

\(P_i\)里的元素从小到大排序,差分一下,然后记\(P_i\)的差分数组为\(Q_i\),会发现一个性质:

\(Q_i\)中不同的取值最多只有\(log_i\)

根据引理3-3可知,如果\(|u|>|v|\),有\(|x|>|u|+|z|>2|z|\),即\(|z|\leq \frac{|x|}{2}\),最多只能迭代\(log_i\)次。

还有一个性质:

记三元组\((i,delt,sz)\)表示\(Q_i\)\(sz\;(sz\geq 2)\)个差分值为\(delt\),如果存在这样的\((i,delt,sz)\),就一定存在\((i-delt,delt,sz-1) .\)

其实蛮显然的?

然后考虑如何优化这个\(\texttt{dp}\) :

利用\(Q_i\)中不同的取值只有\(log_i\)个,我们可以按照\(Q_i\)中的取值分别转移。

建立辅助数组\(g[i][delt]\;(delt\in Q_i)\),表示公差为\(delt\)的回文后缀对答案的贡献。

有 $ g[i][delt]=min(g[i-delt][delt],dp[mx_{delt}-1]+1)$ //没搞明白,问问LQY先

然后暴力扫\(g[i][delt]\)更新\(dp[i]\) .

然后\(g[i][delt]\)其实是可以滚动的,在\(i-delt\)的位置存\(g[i][delt]\)就行了。

至此,就可以用空间\(O(n)\),时间\(O(nlogn)\)的复杂度求最小回文分解了。

3. 最小回文分解+PAM

咕咕咕

4. 参考资料

猜你喜欢

转载自www.cnblogs.com/PsychicBoom/p/12045100.html