poj 3974 manacher
来源:互联网 发布:淘宝网伴娘礼服 编辑:程序博客网 时间:2024/05/01 18:23
详细讲解
只放代码啦:
#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>using namespace std;const int maxn=1100000;int len,p[maxn*2];//p最长回文半径char str[maxn],b[maxn*2]; inline void prework(void){ int i=0; for(i=0;str[i];i++) b[i*2+1]='#',b[(i+1)*2]=str[i]; len=i*2+1; b[0]='$';//防止越界 b[len]=b[len+1]='#'; }inline void manacher(void){ int i,id,mx=0,ans=0;//id记录已知的回文子串中右边界最大的子串的中心位置,mx记录其右边界 for(int i=1;i<=len;i++){ p[i]=i<mx?min(mx-i,p[id*2-i]):1; while(b[i+p[i]]==b[i-p[i]]) p[i]++; if(p[i]+i>mx) mx=p[i]+i,id=i; if(ans<p[i]-1) ans=p[i]-1; } cout<<ans<<endl;}signed main(void){ int cnt=0; while(scanf("%s",str)){ if(str[0]=='E') break; printf("Case %d: ",++cnt); prework(); manacher(); } return 0;}
by >o< neighthorn
0 0
- 【Manacher】 POJ 3974 Palindrome
- POJ 3974 Palindrome Manacher
- POJ 3974 Palindrome【Manacher】
- poj 3974 Palindrome(manacher)
- POJ 3974 - Palindrome(manacher)
- POJ - 3974 Palindrome(manacher)
- Poj 3974 manacher
- POJ 3974 Palindrome manacher
- poj 3974 manacher
- POJ 3974 Palindrome Manacher
- POJ:3974 Palindrome (Manacher算法)
- Poj 3974 回文串--Manacher
- 【manacher算法】POJ 3974 Palindrome
- POJ 3974 Palindrome (Manacher算法)
- POJ 3974-Palindrome(Manacher算法)
- POJ 3974 Manacher模版题
- POJ 3974 Palindrome(manacher)
- POJ 3974 Palindrome(Manacher)
- NOIP 2012 同余方程
- 应用之间的跳转和数据传递
- 哈希学习(2)—— Hashing图像检索资源
- MySQL读书笔记-事务,隔离级别,死锁
- Java基础入门-关键字、数据类型相关知识
- poj 3974 manacher
- BZOJ 2440: [中山市选2011]完全平方数
- Redis安装步骤
- php7.10
- spring 注解
- 剑指offer--16.反转链表
- .net 服务器控件实现文件上传
- 开发工具:AS如何正确导入下载的开源项目
- uva 11181 DFS+概率计算