HDU-3068 最长回文(manacher算法)
来源:互联网 发布:多核编程的艺术 编辑:程序博客网 时间:2024/06/08 00:47
题意:给一个字符串s,求最长回文串的长度。
思路:manacher算法模板题,点击入门。
Code(板子):
#include <algorithm>#include <string.h>#include <cstdio>using namespace std;const int maxn = 110005;char s[maxn*2];int p[maxn*2];int manacher(){memset(p, 0, sizeof p);int id, maxlen, len = strlen(s);for(int i = len; i >= 0; --i){s[i*2+2] = s[i];s[i*2+1] = '#';}s[0] = '$';id = 0, maxlen = 1;for(int i = 1; i <= 2*len+1; ++i){if(id+p[id] > i) p[i] = min(p[id-(i-id)], id+p[id]-i);else p[i] = 1;while(s[i-p[i]] == s[i+p[i]]) ++p[i];if(id+p[id] < i+p[i]) id = i;if(maxlen < p[i]) maxlen = p[id];}return maxlen-1;}int main(){while(~scanf("%s", s)) printf("%d\n", manacher());return 0;}
继续加油~
阅读全文
1 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算法】
- Hdu 3068 最长回文(manacher算法)
- HDU 3068 最长回文(manacher算法)
- HDU 3068 最长回文 (manacher算法)
- HDU 3068 最长回文(manacher算法模板)
- hdu 3068 最长回文 manacher算法
- [hdu 3068] 最长回文 manacher算法
- 进程间通信(1):匿名管道
- (转)关于DC和SelectObject()函数
- [Codeforces]817F. MEX Queries 离散化+线段树维护
- TP多图上传
- Fragment之间传值CallBack(Fragment02)
- HDU-3068 最长回文(manacher算法)
- eclipse修改编码及字体
- 实验二 UDP 通信实验
- 已解决:android studio找不到svn的配置了
- 浅析python中两种import的使用区别
- Scrapy-Item Loaders(项目加载器)
- Nginx详细安装部署教程
- Fragment之间传值CallBack(MainActivity)
- CentOS安装gitlab