hdu3068(Manacher)
来源:互联网 发布:gta5捏脸数据男周星驰 编辑:程序博客网 时间:2024/05/29 18:19
链接:点击打开链接
题意:求最长回文子串
代码:
#include <queue>#include <vector>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream>#include <algorithm>using namespace std;const int siz=110005;int n,rl[siz<<1];char s[siz],str[siz<<1];int manacher(){ int i,ma,ans,pos; ma=ans=pos=0; for(i=0;i<n;i++){ if(i<ma) rl[i]=min(ma-i,rl[2*pos-i]); else rl[i]=1; while(str[i-rl[i]]==str[i+r l[i]]){ if((i-rl[i]<0)||(i+rl[i]>=n)) break; rl[i]++; } if(i+rl[i]>ma){ ma=i+rl[i]; pos=i; } ans=max(ans,rl[i]); } return ans-1;}int main(){ //manacher模板题,网上好多讲解 int i,j; while(scanf("%s",s)!=EOF){ n=0; str[n++]='#'; for(i=0;s[i];i++) str[n++]=s[i],str[n++]='#'; printf("%d\n",manacher()); } return 0;}
阅读全文
0 0
- {Manacher}hdu3068
- manacher hdu3068
- hdu3068(Manacher)
- hdu3068 Manacher算法
- hdu3068(manacher算法)
- hdu3068(Manacher算法)
- 【HDU3068】最长回文【manacher】
- HDU3068 最长回文 manacher
- 【HDU3068】最长回文【Manacher】
- hdu3068 Manacher模板
- hdu3068 manacher算法模板
- 最长回文 hdu3068 manacher
- Manacher HDU3068 最长回文
- manacher算法&hdu3068
- hdu3068 manacher模版
- HDU3068[最长回文]--Manacher
- hdu3068回文串Manacher算法
- hdu3068之manacher算法+详解
- 石子合并(NOI1995)
- org.apache.commons.beanutils.BeanUtils 拷贝属性为对象的属性,拷贝地址
- JavaScript
- 手工创建包(package)、有逼格的编译
- Springmvc学习之注解与非注解适配器与映射器
- hdu3068(Manacher)
- LR对数损失
- 基数排序
- 通过UI控制模型旋转的一种方法
- namenum-section1.2
- html position属性
- 【POJ1811】Prime Test-Miller-Rabin素数测试+Pollard-rho大数分解
- 铺砖块
- 真二叉树重构(Proper Rebuild)