poj 3974 Palindrome 裸的最长回文子串Mancher算法O(n)
来源:互联网 发布:ipad怎么传软件 编辑:程序博客网 时间:2024/06/06 08:30
//poj 3974//sep9#include <iostream>using namespace std;const int MAXN=1000024; char a[MAXN],b[2*MAXN];int p[2*MAXN];int main(){int cases=0;while(scanf("%s",a)==1&&a[0]!='E'){int i=0,j=0;b[j++]='X';b[j++]='#';while(a[i]!='\0'){b[j++]=a[i++];b[j++]='#';}memset(p,0,sizeof(p));int len=j,ids=0,mx=0;for(int i=1;i<len;++i){if(mx>i)p[i]=(p[2*ids-i]<(mx-i)?p[2*ids-i]:mx-i);elsep[i]=1;while(b[i-p[i]]==b[i+p[i]])++p[i];if(i+p[i]>mx){mx=i+p[i];ids=i;}}int maxx=0;for(int i=1;i<len;++i)maxx=max(maxx,p[i]-1);printf("Case %d: %d\n",++cases,maxx);}return 0;}
0 0
- poj 3974 Palindrome 裸的最长回文子串Mancher算法O(n)
- poj 3974 最长回文串O(N)的算法
- 最长回文子串o(n)算法
- poj 3974 Palindrome 【最长连续回文子串,Manacher算法】
- POJ 3974 Palindrome 最长回文子串(manacher算法)
- poj 3974 史上最NB 求最长回文子串 O(N) Manacher算法
- 最长回文子串(Longest Palindrome Substring)--Manacher算法O(n)
- POJ 3974 Palindrome 最长回文子串
- 最长回文子串算法-- Manacher算法--O(n)
- Manacher算法--O(n)最长回文子串算法
- poj 3974 and hdu 3068 最长回文串的O(n)解法(Manacher算法)
- hiho#1032 : 最长回文子串 (manacher算法O(n)时间求字符串的最长回文子串 )
- O(n)算法求最长回文子串
- HDU 3068 最长回文子串O(n)算法
- Manacher算法:最长回文子串O(n)
- manacher算法 (O(n)求最长回文子串)
- manacher算法 O(n)求最长回文子串
- 最长回文子串 Manacher算法 时间复杂度O(N)
- tortoisesvn: file:///
- 自动加载
- vs2013 ef,使用 MySQL来做数据库开发
- IOS 代码中修改运营商、电池颜色
- 黑马程序员——集合之List
- poj 3974 Palindrome 裸的最长回文子串Mancher算法O(n)
- MySQL日期时间函数大全
- MiniSearch
- <xliff:g>标签介绍
- 大型网站的灵魂——性能
- Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode 错误
- Codeforces587C(倍增LCA)
- 读取plist文件中的Boolean类型的字段值
- LD_LIBRARY_PATH环境变量的设置