【HDU 3068】 最长回文|manacher
来源:互联网 发布:mac jdk默认安装路径 编辑:程序博客网 时间:2024/05/22 02:02
就是manacher算法
注意下 while(scanf()==1) 看来是和scanf的返回值有关 必须加==1了
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;char s[110000+10],tmp[110000*2+10];int f[110000*2+10],mmax,mx,id;int main(){while(scanf("%s",s+1)==1){int len=strlen(s+1);for(int i=1;i<=len;i++)tmp[i*2-1]='#',tmp[i*2]=s[i];len=len*2+2;tmp[len-1]='#';tmp[len]='@';mmax=1;id=1;mx=1;f[1]=1;for(int i=1;i<=len;i++){f[i]=1;if(i<mx)f[i]=min(mx-i+1,f[id*2-i]);while(tmp[i+f[i]]==tmp[i-f[i]]) f[i]++;if(f[i]+i-1>mx) mx=f[i]+i-1,id=i;mmax=max(f[i],mmax);}//for(int i=1;i<=len;i++) printf("%c",tmp[i]);printf("\n");//for(int i=1;i<=len;i++) printf("%d",f[i]);printf("\n");printf("%d\n",mmax-1);}return 0;}
0 0
- 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)[Template:manacher]
- HDU 3068 最长回文 [Manacher回文串]
- hdu 3068 最长回文(manacher&最长回文子串)
- hdu 3068 最长回文(最长回文子串 manacher算法)
- Hdu 3068 最长回文 (manacher算法)
- hdu 3068 最长回文 (manacher算法)
- HDU 3068 最长回文(Manacher 算法)
- iOS与 HTML混编
- 122-m-Best Time to Buy and Sell Stock II
- (第15讲)String类型和8种基本类型及其包装类之间的转换
- 使用Encoder-Decoder模型自动生成对联的思路
- 图文详解HTTP协议
- 【HDU 3068】 最长回文|manacher
- C++第三次作业
- HDU 1233还是畅通工程 (Kruskal)
- 算法(读书笔记):2.4优先队列
- 【GDOI2016模拟3.9】奇妙的数列
- Debian/Ubuntu Linux:使用Hostapd搭建无线访问点(WAP)
- Android学习笔记--自定义ImageButton
- android 进阶知识
- 未解决的问题会耗干你的能量