HDU 3068 最长回文 (Manacher 模板题)
来源:互联网 发布:java递归获取父节点 编辑:程序博客网 时间:2024/06/06 03:23
题意:
中文
思路:
Manacher 模板题
另有回文自动机解法
代码:
#include <bits/stdc++.h>using namespace std;const int MAXN=210000;struct Manacher{ char Ma[MAXN*2]; int Mp[MAXN*2]; int Mx[MAXN*2]; int len; double ave; int l; int ans; void manachar(char s[]){ l=0;ans=0; len=strlen(s); Ma[l++]='$'; Ma[l++]='#'; for(int i=0; i<len; i++) { Ma[l++]=s[i]; Ma[l++]='#'; } Ma[l]=0; int mx=0,id=0; for(int i=0; i<l; i++) { ave++; Mp[i]=mx>i?min(Mp[2*id-i],mx-i):1; while(Ma[i+Mp[i]]==Ma[i-Mp[i]]){ Mp[i]++; ave++; } if(i+Mp[i]>mx) { mx=i+Mp[i]; id=i; } Mx[i]=mx; ans=max(ans,Mp[i]-1); } ave/=len; } void debug(){ printf("id: "); for(int i=0;i<l;i++) printf("%4d",i); printf("\n"); printf("char: "); for(int i=0;i<l;i++) printf("%c ",Ma[i]); printf("\n"); printf("Mx: "); for(int i=0;i<l;i++) printf("%4d",Mx[i]); printf("\n"); printf("Mp: "); for(int i=0;i<l;i++) printf("%4d",Mp[i]); printf("\n"); printf("ave: %lf",ave); printf("\n"); }};Manacher man;char buf[MAXN];int main(){ while(~scanf("%s",&buf)){ man.manachar(buf); //man.debug(); cout<<man.ans<<endl; }}
给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度.
回文就是正反读都是一样的字符串,如aba, abba等
回文就是正反读都是一样的字符串,如aba, abba等
两组case之间由空行隔开(该空行不用处理)
字符串长度len <= 110000
aaaaabab
43
0 0
- 【HDU 3068】【manacher模板题】最长回文
- Hdu oj 3068 最长回文(manacher算法模板题)
- HDU 3068 最长回文 (Manacher 模板题)
- hdu 3068 最长回文 (manacher模板)
- HDU 3068 最长回文(manacher算法模板)
- HDU 3068 最长回文 【Manacher模板】
- HDU 3068 最长回文串 Manacher模板题
- hdu 3068 最长回文 Manacher算法模板题
- hdu 3068 最长回文 【Manacher求最长回文子串,模板题】
- hdu 3068 最长回文子串(Manacher算法模板题)
- hdu 3068 最长回文(Manacher算法入门模板题)+解题套路
- hdu 3068 最长回文 (manacher算法)
- HDU 3068 最长回文(Manacher 算法)
- hdu 3068 最长回文(manacher)
- hdu 3068 最长回文(manacher算法)
- HDU 3068 最长回文(初遇manacher)
- Hdu 3068 最长回文(manacher算法)
- HDU 3068 最长回文(manacher算法)
- Swift--1基础语法(常量变量、数据类型、元组)
- 机器学习基础篇学习
- php面试
- 图片旋转
- Node.js入门到精通(5)REPL模式
- HDU 3068 最长回文 (Manacher 模板题)
- JFinal Web开发学习(十)前后台显示博客列表
- 算法学习-查找旋转数组的最小值
- iOS 当定义一个类继承UICollectionReusableView时,宽度不能自适应的解决办法
- 推荐系统研究常用数据库
- Selenium Grid2分布式执行测试脚本
- 283. Move Zeroes
- servlet和filter路径
- 关于matlab中textread