这题只有橙我吃 Manacher 至少蓝吧。
题意
给定字符串 ,要把 划分成数量最小的回文串,求这个数量。
Solution
这一种划分类问题,通常是 DP。
定义 表示前 个字符的最小划分。 边界就是前 个字符的最小划分是 。注意到要求最小,所以 数组要初始化成极大值。 答案显然是 。 推转移,发现当 到 这一个串是回文串时,。
这个时候发现,哎这个转移怎么这么坏呀,这么要求回文串呀这个转移要求回文串,这么快速的预处理回文串呢?那肯定是 Manacher 啊。
用 Manacher 预处理所以串,然后直接 DP 就行了。
