*Manacher
来源:互联网 发布:淘宝抢购怎么看名次 编辑:程序博客网 时间:2024/06/01 08:32
今天是2017/7/8,DCDCBigBig的第二十一篇博文
额。。。最近准备期末考,有接近一个月没上博客了。。。这几天在eg集训,学了些玄妙的新算法准备NOIP提高组,就来发一下(期末考爆炸啦蛤蛤)
Manacher
哇O(n)时间求出回文字串,这个算法真是够赞的
#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;char s[100001];int manacher(char s[]){ int maxn=0,p[200001],mx=0,id=0,len=strlen(s); char st[200001]; st[0]='$'; for(int i=0;i<len;i++){ st[i*2+1]='#'; st[(i+1)*2]=s[i]; } st[len*2+1]='#'; for(int i=0;i<2*len;i++){ if(i<mx)p[i]=min(p[id*2-i],mx-i); else p[i]=1; while(st[i-p[i]]==st[i+p[i]])p[i]++; if(i+p[i]>mx){ mx=i+p[i]; id=i; } maxn=max(maxn,p[i]-1); } return maxn;}int main(){ scanf("%s",s); printf("%d",manacher(s)); return 0;}
起
阅读全文
0 0
- Manacher
- manacher
- Manacher
- Manacher
- manacher
- manacher
- manacher
- Manacher
- *Manacher
- Manacher
- Manacher算法
- Manacher算法
- Manacher算法
- Manacher算法
- 回文(manacher)
- {Manacher}hdu3068
- Manacher+hdu4513
- Manacher 算法
- 懒汉式单例和饿汉式单例优缺点-在多线程情况下如何使用
- 数据存储传值
- GPU版基数排序(radix sort)
- Android SQLLite数据库
- 人工神经网络之BP神经网络模型
- *Manacher
- 计算机端口
- ARM裸机学习(二)
- Android Studio常用的快捷键
- 洛谷Oj-税收与补贴问题-模拟
- centos6.9 vsftp 服务器安装
- 高斯消元
- JZOJ__Day 1【NOIP普及模拟】MATRIX
- Maven学习(一)