hdu 3068 最长回文(manacheramp;最长回文子串)
最长回文
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 7317 Accepted Submission(s): 2500
回文就是正反读都是一样的字符串,如aba, abba等
两组case之间由空行隔开(该空行不用处理)
字符串长度len <= 110000
主要是练习下。
manacher算法解说见here
p[i]-1为原回文串的长度。
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
const int INF=0x3f3f3f3f;
const int maxn=111000;
int p[maxn<<1],len;
char buf[maxn],st[maxn<<1];
void init()
{int i;len=strlen(buf);st[0]='$',st[1]='#';for(i=0;i<len;i++)st[2*i+2]=buf[i],st[2*i+3]='#';len=2*len+2;
}
void manacher()
{int i,id,mx=0;for(i=1;i<len;i++){p[i]=mx>i?
min(mx-i,p[2*id-i]):1; while(st[i+p[i]]==st[i-p[i]])//不用操心越界。由于st[0]='$' p[i]++; if(i+p[i]>mx) mx=i+p[i],id=i; } } int main() { int i,ans; while(~scanf("%s",buf)) { ans=1; init(); manacher(); for(i=2;i<len;i++) ans=max(ans,p[i]); printf("%d\n",ans-1); } return 0; }
hdu 3068 最长回文(manacheramp;最长回文子串)相关推荐
- HDU - 3068 最长回文(manacher)
HDU - 3068 最长回文 Time Limit: 2000MS Memory Limit: 32768KB 64bit IO Format: %I64d & %I64u Subm ...
- hdu 3068 最长回文 (Manacher算法求最长回文串)
参考博客:Manacher算法--O(n)回文子串算法 - xuanflyer - 博客频道 - CSDN.NET 从队友那里听来的一个算法,O(N)求得每个中心延伸的回文长度.这个算法好像比较偏门, ...
- HDU 3068 最长回文 manacher算法
Manacher算法的裸题 下面简单说一下复杂度为O(n)的马拉车算法 首先过程中涉及到的变量有: p[i]表示以t[i]字符为中心的回文子串的半径 id为最大回文子串中心的位置 mx是回文串 ...
- 最长回文子串 hihocode 1032 hdu 3068
最长回文 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- hdu 3068 最长回文(manacher算法)
最长回文 Time Limit: 4000/2000 M ...
- hdu 3068 最长回文【manacher】(模板题)
<题目链接> 最长回文 Problem Description 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度. 回文就是正反读都是一样的字符串,如a ...
- 最长回文 HDU - 3068(求最长回文串的长度【马拉车算法Manacher】)
马拉车算法 Manacher's Algorithm 是用来查找一个字符串的最长回文子串的线性方法,由一个叫 Manacher 的人在 1975 年发明的,这个方法的最大贡献是在于将时间复杂度提升到了 ...
- 【HDU - 3068】最长回文(Manacher算法,马拉车算法求最长回文子串)
题干: 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度. 回文就是正反读都是一样的字符串,如aba, abba等 Input 输入有多组case,不超过120组 ...
- 最长回文 HDU - 3068 马拉车算法
问题: 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度. 回文就是正反读都是一样的字符串,如aba, abba等 Input 输入有多组case,不超过120组 ...
最新文章
- Metal之MTLBuffer批量加载顶点数量较多的图形渲染
- stm32 isp下载官方软件android_OpenCanvas免费版下载_OpenCanvas绘图软件官方版下载7.0.25...
- Tableau BI工具对接 AnalyticDB for PostgreSQL数据源
- 《偶像爱豆出身的编程语言排行第一得主!谁还敢嘲python没实力?》Python应用与实践
- 数据结构-环形队列 C和C++的实现
- 2.5 分类模型评估指标—AUC与ROC及绘制混淆矩阵与ROC曲线
- 直播实录丨十年主导15个产品从0到1,她的经验与思考现场拆解
- 会计专业与计算机专业结合复合型,对会计专业学生学习计算机的建议
- 嗖嗖嗖Wordpress外贸企业主题制作教程--第二讲 整站下载器的使用和静态页面的准备
- jquery获取所有选中的checkbook
- python调用foxmail 发邮件_foxmail 收取已发送邮件
- js worker使用总结
- springboot项目日志记录访问客户端ip地址
- 现在怎么不生产5寸大小的手机了?
- 6年主导3个项目,我终于成了别人眼中的大神
- Js获取中国农历,用于确定非固定的农历节假日
- Eclipse中同时打开多个控制台(Console)
- java制作海报工具类,java操作图片贴图,java给图片添加文字,调整字体颜色大小间距
- linux中的sh脚本语法
- 【Spark】广播变量和累加器