【NOIP模拟】 20/02/13
-
蛮有意思的,考场肝了 还好写出来了
我们考虑枚举回文串的中间点,一定是在一个串中,且在这个串中,一个端点要和它形成一个回文串
把原本就是回文串的特判掉(Infinity),那么我们钦定这个中间点后就有一个前缀或是后缀需要我们用其它串匹配,假如现在需要找一个串匹配我们的后缀, 很小,我们暴力枚举每一个串与之匹配 -
那么我们可以分类讨论:
- 当前串的后缀包涵把后缀反过来的串,那么这种情况可以转换为我们需要匹配一个前缀
- 当前串被后缀反过来的串完全包涵,那么这种情况可以转换为匹配一个更短的后缀
- 当前串与后缀反过来相同,那么这种情况可以拼成一个回文串(Infinity)
- 当前串的后缀与后缀反过来的前缀相同,这种情况把自己封死不能继续匹配,但有一个相同部分长度的贡献