HDU3068 最长回文
2017-06-14 16:05
190 查看
传送门
manacher一发
注意有多组数据和边界处理
CODE:
manacher一发
注意有多组数据和边界处理
CODE:
#include<cstdio> const int N=220005; char a ,s ; int p ; int len,pos,mx,Len,ans; inline int max(const int &a,const int &b){return a>b?a:b;} inline int min(const int &a,const int &b){return a<b?a:b;} int main() { while(scanf("%s",s)==1) { Len=0; for(int i=0;s[i];i++) a[++Len]='#',a[++Len]=s[i]; a[Len+1]=a[Len+2]='#',a[0]='$'; ans=mx=pos=0; for(int i=1;i<=Len;i++) { if(mx>i) p[i]=min(p[2*pos-i],mx-i); else p[i]=1; while(a[i+p[i]]==a[i-p[i]]) p[i]++; if(i+p[i]>mx) mx=i+p[i],pos=i; ans=max(ans,p[i]-1); } printf("%d\n",ans); } return 0; }
相关文章推荐
- 【最长回文子串】HDU3068最长回文【Manacher算法】
- hdu3068 最长回文子串问题.
- [HDU3068]最长回文
- HDU3068-最长回文---O(n)时间求最长回文子串
- hdu3068——最长回文
- HDU3068最长回文 题解
- HDU3068 最长回文
- HDU3068 最长回文(Manacher算法)
- 【HDU3068】【模板】最长回文
- HDU3068 最长回文 (Manacher算法)
- HDU3068最长回文 Manacher算法
- 【题解】hdu3068 最长回文
- hdu3068(最长回文子串裸题)
- HDU3068-最长回文(Manacher算法)
- HDU3068 最长回文
- HDU3068 最长回文
- 马拉车(manacher)算法——最长回文(hdu3068)
- HDU3068 最长回文 manacher模板
- HDU3068 最长回文
- manacher 最长回文子串 hdu3068