模板
1 | char s[maxn << 1] = "##"; |
例题
最长双回文串
https://www.luogu.com.cn/problem/P4555
题意
在给定的字符串中找到两个相邻的回文串,长度最长
思路
将Manacher处理后的"#"当作两个回文串的连接点
注意这个处理步骤:
1 | l[i + hw[i] - 1] = max(l[i + hw[i] - 1], hw[i] - 1); |
还有这个步骤:
1 | for (int i = 3; i <= n;i+=2) |
1 | char s[maxn << 1] = "##"; |
https://www.luogu.com.cn/problem/P4555
题意
在给定的字符串中找到两个相邻的回文串,长度最长
思路
将Manacher处理后的"#"当作两个回文串的连接点
注意这个处理步骤:
1 | l[i + hw[i] - 1] = max(l[i + hw[i] - 1], hw[i] - 1); |
还有这个步骤:
1 | for (int i = 3; i <= n;i+=2) |