【HDU3068】最长回文【Manacher】
来源:互联网 发布:请叫我威廉三世知轩 编辑:程序博客网 时间:2024/05/16 12:33
模板题。
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 220005;int n, p[maxn];char str[maxn], s[maxn];int main() {while(scanf("%s", str) != EOF) {int len = strlen(str); n = (len << 1) + 2;s[0] = '$';for(int i = 0; i <= len; i++) {s[(i << 1) + 1] = '#';s[(i << 1) + 2] = str[i];}int mx = 0, id = 0;for(int i = 1; i < n; i++) {p[i] = mx > i ? min(p[(id << 1) - i], mx - i) : 1;for(; s[i + p[i]] == s[i - p[i]]; p[i]++);if(i + p[i] > mx) {mx = i + p[i];id = i;}}int ans = 1;for(int i = 0; i < n; i++) ans = max(ans, p[i]);printf("%d\n", ans - 1);}return 0;}
0 0
- 【HDU3068】最长回文【manacher】
- HDU3068 最长回文 manacher
- 【HDU3068】最长回文【Manacher】
- 最长回文 hdu3068 manacher
- Manacher HDU3068 最长回文
- HDU3068[最长回文]--Manacher
- hdu3068(最长回文manacher)
- 【Manacher算法】hdu3068 最长回文
- 【HDU3068】【最长回文】【Manacher裸题】
- HDU3068最长回文 Manacher算法
- hdu3068 最长回文--Manacher算法
- HDU3068 最长回文 manacher模板
- Manacher(hdu3068最长回文)
- hdu3068 最长回文(manacher)
- HDU3068 最长回文(manacher)
- HDU3068(最长回文子串manacher算法)
- hdu3068 最长回文(manacher 算法)
- hdu3068最长回文(manacher算法)
- 记录FFmpeg的help文档中命令行参数。
- 1014. 福尔摩斯的约会
- VS2013在Window下显示问题(解决MFC.exe桌面图标显示异常问题)
- cf#334-C. Alternative Thinking-规律题
- 单点登录系统cas资料汇总
- 【HDU3068】最长回文【Manacher】
- 单点登录方案的比较和选择
- 【URAL1297】Palindrome【Manacher】
- LightOJ 1077 - How Many Points? (线段整数点个数)
- 解决中文文件名显示乱码的问题
- python乱码小记
- 11款开放中文分词引擎大比拼
- bzoj 2055 80人环游地球(上下界费用流)
- 对于支付宝进军社交的看法