Manacher 线性时间求最长回文串
来源:互联网 发布:json乱码转换成中文 编辑:程序博客网 时间:2024/05/16 02:49
#include<bits/stdc++.h>#define REP(i,j,k) for (i=(j);i<=(k);++i)#define max(x,y) ((x)>(y)?(x):(y))#define min(x,y) ((x)<(y)?(x):(y))using namespace std;const int dmax=100100;char s[dmax];int f[dmax];int main(){int i,j,k,m,n=0;s[0]='$';while (1){s[++n]=getchar();if (s[n]=='\n'){s[n]='$';break;}s[++n]='$';}int mx,l,ans=0;mx=l=0;REP(i,1,n){if (mx>i){f[i]=min(f[2*l-i],mx-i);}elsef[i]=1;while (s[i-f[i]]==s[i+f[i]]) ++f[i];if (f[i]+i>mx){mx=f[i]+i;l=i;}ans=max(ans,f[i]);}ans--;printf("%d\n",ans);return 0;}
0 0
- Manacher 线性时间求最长回文串
- 线性时间求最大回文子串的Manacher算法
- Manacher求最长回文
- Manacher算法求最长回文子串
- Manacher算法求最长回文子串
- manacher求最长回文子串
- Manacher算法求最长回文串
- manacher 求最长回文子串
- Manacher算法求最长回文串
- manacher算法求最长回文串长度
- manacher算法求最长回文串
- Manacher算法--求最长回文子串
- Manacher算法求最长回文子串
- Manacher算法求最长回文串
- 求最长回文串(Manacher算法)
- Manacher算法求最长回文子串
- Manacher 算法 求最长字回文串
- HDOJ-3068 最长回文 (manacher求最长回文串)
- COLORREF含义及在VC++中的使用
- 本地gradle的一些命令
- 门面模式
- 以Web方向为基础的java学习路线
- 用 eric6 与 PyQt5 实现python的极速GUI编程(系列01)--Hello world!
- Manacher 线性时间求最长回文串
- 个人学习目标
- [POJ2104]K-th Number(静态主席树)
- 学生信息管理系统1.0
- ADD SSH KEY TO GITLAB
- BZOJ-3282 Tree Link-Cut-Tree(似乎树链剖分亦可)
- git分布式版本管理的个人理解
- Java习惯用法
- HDU1141 Factstone Benchmark(数学)