hdu 3068 最长回文
来源:互联网 发布:汤凤龙网络课 编辑:程序博客网 时间:2024/06/05 22:46
hdu 3068 最长回文
Manacher算法求最大的回文串长度
#include <stdio.h>#include <string.h>int min(int a, int b) {return a > b ? b : a;}char oldStr[110005], newStr[220010];int p[220010];int main() {int maxLen, maxId, id;int i;while (scanf("%s", &oldStr[1]) != EOF) {memset(p, 0, sizeof(p));for (i = 1; oldStr[i] != '\0'; i++) {newStr[i*2] = oldStr[i];newStr[i*2 + 1] = '#';}newStr[0] = '?'; newStr[1] = '#';newStr[i*2 + 1] = '\0';maxLen = maxId = id = 0;for (i = 1; newStr[i] != '\0'; i++) {if (maxId > i) {p[i] = min(p[2*id - i], maxId - i);} else {p[i] = 1;}while (newStr[i + p[i]] == newStr[i - p[i]]) {p[i]++;}if (p[i] + i > maxId) {maxId = p[i] + i;id = i;}if (p[i] > maxLen) {maxLen = p[i];}}printf("%d\n", maxLen - 1);}return 0;}
- HDU 3068 ( 最长回文 )
- HDU-3068 最长回文
- hdu 3068 最长回文
- Hdu 3068 最长回文
- HDU 3068 最长回文
- HDU-3068-最长回文
- hdu-最长回文-3068
- hdu 3068 最长回文
- 【HDU】3068 最长回文
- hdu 3068 最长回文
- HDU 3068 最长回文
- hdu 3068 最长回文
- hdu 3068 最长回文
- hdu-3068-最长回文
- HDU 3068 最长回文
- HDU 3068 最长回文
- HDU 3068 最长回文
- HDU - 3068 最长回文
- struts2环境配置总结
- 多线程总结
- 设计杂谈
- 用脚本来简化iOS美术同学的工作
- 手机地址及归属地查询。
- hdu 3068 最长回文
- ksoap2 参数传输不了或者失败的解决办法
- android自定义TabWidget样式
- iptables-selinux设置
- CString用法整理
- python 实现图形界面exe
- Drawable和Bitmap的转换
- oracle随笔-Index (B*树索引-1)
- 机器学习理论与实战(十四)概率图模型02