给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度. 
回文就是正反读都是一样的字符串,如aba, abba等

Input输入有多组case,不超过120组,每组输入为一行小写英文字符a,b,c...y,z组成的字符串S 
两组case之间由空行隔开(该空行不用处理) 
字符串长度len <= 110000Output每一行一个整数x,对应一组case,表示该组case的字符串中所包含的最长回文长度. 
Sample Input

aaaa

abab

Sample Output

4
3
题意:找最长回文子串
题解:manacher算法,据说这是一道连后缀数组O(nlogn)也卡的神题。。结果真的是,第一次用manacher写也tle了,估计是写搓了改了好几遍
#include<map>
#include<set>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<cstdio>
#include<iomanip>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define pi acos(-1)
#define ll long long
#define mod 10007
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1 using namespace std; const double g=10.0,eps=1e-;
const int N=+,maxn=(<<)-,inf=0x3f3f3f3f; string str;
int p[N],slen; void manacher()
{
int mx=,id;
for(int i=;i<=slen;i++)
{
if(mx>i)p[i]=min(p[*id-i],mx-i);
else p[i]=;
while(str[i+p[i]]==str[i-p[i]])p[i]++;
if(p[i]+i>mx)
{
mx=p[i]+i;
id=i;
}
}
}
int main()
{
ios::sync_with_stdio(false);
cin.tie();
// cout<<setiosflags(ios::fixed)<<setprecision(2);
string s;
int cnt=;
while(cin>>s){
str="$#";
for(int i=;i<s.size();i++)
{
str+=s[i];
str+="#";
}
slen=str.size();
memset(p,,sizeof p);
manacher();
int ans=-;
for(int i=;i<str.size();i++)
ans=max(ans,p[i]-);
cout<<ans<<endl;
}
return ;
}

最新文章

  1. 安卓初級教程(4):sqlite建立資料庫
  2. easyUI 中datagrid 返回列隐藏方法
  3. C语言中的位操作(14)--反转比特位
  4. Linux 上的基础网络设备详解
  5. 一 VC2008环境中ICE的配置
  6. 前端面试题总结:HTML5,JS,CSS3,兼容性。
  7. Linux-Zabbix 邮件报警设置
  8. Django contrib Comments 评论模块详解
  9. Uva 01124, POJ 3062 Celebrity jeopardy
  10. React文档(十)表单
  11. js 异步请求
  12. 注解之@CookieValue
  13. 单细胞文章分享:Molecular Diversity of Midbrain Development in Mouse, Human, and Stem Cells
  14. 使用jquery方法的时候,要注意对象是哪个,否则很容易出错
  15. 前端菜鸟起飞之学会ps切图
  16. Viewpager 的相关总结
  17. drop out为什么能够防止过拟合
  18. MySQL 忘记密码:skip-grant-tables
  19. [bzoj1019][SHOI2008]汉诺塔 (动态规划)
  20. Linux下编写 makefile 详细教程

热门文章

  1. Linux基础命令---gunzip
  2. DeepMind已将AlphaGo引入多领域 Al泡沫严重
  3. HttpClient配置SSL绕过https证书
  4. P4289 [HAOI2008]移动玩具(bfs)
  5. djando 项目用django自己服务器在局域网中被访问设置
  6. 20145122《Java程序设计》第七周学习总结
  7. 20145322 Exp5 Adobe阅读器漏洞攻击
  8. CRC32是什么?
  9. VC++ 获取文件属性创建时间、修改时间和访问时间
  10. 认识电脑的开机流程与主引导分区(MBR)