HDU3068 最长回文 manacher模板
来源:互联网 发布:大数据基金有哪些 编辑:程序博客网 时间:2024/05/22 09:09
题目链接:HDU3068
最长回文
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 15211 Accepted Submission(s): 5573
Problem Description
给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度.
回文就是正反读都是一样的字符串,如aba, abba等
回文就是正反读都是一样的字符串,如aba, abba等
Input
输入有多组case,不超过120组,每组输入为一行小写英文字符a,b,c...y,z组成的字符串S
两组case之间由空行隔开(该空行不用处理)
字符串长度len <= 110000
两组case之间由空行隔开(该空行不用处理)
字符串长度len <= 110000
Output
每一行一个整数x,对应一组case,表示该组case的字符串中所包含的最长回文长度.
Sample Input
aaaaabab
Sample Output
43
题目分析:裸的manacher模板
//// main.cpp// HDU3068(1//// Created by teddywang on 16/6/7.// Copyright © 2016年 teddywang. All rights reserved.//#include <iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;char s[111111<<1];int p[111111<<1];int main(){ while(~scanf("%s",s)) { int len=strlen(s); for(int i=len;i>=0;i--) { s[2*i+2]=s[i]; s[2*i+1]='#'; } s[0]='*'; int id=0,maxn=0,maxlen=0; for(int i=2;i<2*len+1;i++) { maxlen=p[id]+id-1; if(maxlen>i-1) p[i]=min(p[2*id-i],maxlen-i+1); else p[i]=1; while(s[i+p[i]]==s[i-p[i]]) p[i]++; if(p[i]>maxn) maxn=p[i]; if(i+p[i]>p[id]+id) id=i; } cout<<maxn-1<<endl; }}
0 0
- HDU3068 最长回文 manacher模板
- hdu3068 最长回文(Manacher模板)
- HDU3068最长回文 (Manacher模板)
- 【HDU3068】最长回文【manacher】
- HDU3068 最长回文 manacher
- 【HDU3068】最长回文【Manacher】
- 最长回文 hdu3068 manacher
- Manacher HDU3068 最长回文
- HDU3068[最长回文]--Manacher
- hdu3068(最长回文manacher)
- 【Manacher算法】hdu3068 最长回文
- 【HDU3068】【最长回文】【Manacher裸题】
- HDU3068最长回文 Manacher算法
- hdu3068 最长回文--Manacher算法
- Manacher(hdu3068最长回文)
- hdu3068 最长回文(manacher)
- HDU3068 最长回文(manacher)
- 【HDU3068】【模板】最长回文
- poj-3320-Jessica's Reading Problem
- ios开发网址总结
- Tomcat设置默认启动项目及Java Web工程设置默认启动页面
- Hibernate的N+1查询及解决
- LeetCode:N-Queens
- HDU3068 最长回文 manacher模板
- 更新组合值
- MSQL存储过程
- poj1088滑雪--dp之记忆化搜索
- 框架 day49 BOS项目练习3(修复window控件BUG,添加/修改/作废取派员,datagrid使用,分页查询(DetachedCriteria离线),formatter函数)
- Android "Unable to instantiate fragment"解决方案
- 面试题5: 链表的相关操作
- Android 数据绑定框架DataBinding
- VS2015 密匙