POJ 3974 Palindrome Manacher
来源:互联网 发布:薛之谦女装店淘宝店 编辑:程序博客网 时间:2024/04/29 03:13
#include<iostream>#include<queue>#include<algorithm>#include<stdlib.h>#include<stdio.h>#include<string.h>using namespace std;const int MAX=1111111<<1;char Str[MAX],Ch;int Len;int Radius[MAX];void Manacher(){ Radius[0]=1; for (int i=1,k=0;i<Len;i++) { if (k+Radius[k]-1<i) Radius[i]=1; else Radius[i]=min(Radius[2*k-i],k+Radius[k]-i); while (Str[i-Radius[i]]==Str[i+Radius[i]]) Radius[i]++; if (k+Radius[k]-1<i+Radius[i]-1) k=i; }}int main(){ int Cases=0; while (scanf("%s",Str)!=EOF) { if (Str[0]=='E'&&Str[1]=='N'&&Str[2]=='D'&&Str[3]=='\0') break; Len=strlen(Str); for (int i=Len;i>=0;i--) { Str[i*2+1]='#'; Str[i*2+2]=Str[i]; } Len=Len*2+2; Str[0]='*',Str[Len]='\0'; Manacher(); printf("Case %d: %d\n",++Cases,(*max_element(Radius,Radius+Len))-1); } return 0;}
0 0
- 【Manacher】 POJ 3974 Palindrome
- POJ 3974 Palindrome Manacher
- POJ 3974 Palindrome【Manacher】
- poj 3974 Palindrome(manacher)
- POJ 3974 - Palindrome(manacher)
- POJ - 3974 Palindrome(manacher)
- POJ 3974 Palindrome manacher
- POJ 3974 Palindrome Manacher
- POJ:3974 Palindrome (Manacher算法)
- 【manacher算法】POJ 3974 Palindrome
- POJ 3974 Palindrome (Manacher算法)
- POJ 3974-Palindrome(Manacher算法)
- POJ 3974 Palindrome(manacher)
- POJ 3974 Palindrome(Manacher)
- POJ 3974 Palindrome(Manacher)
- POJ 3974 Palindrome Manacher算法题解
- POJ - 3974 Palindrome(Manacher算法模板题)
- poj Palindrome 3974 (字符串&manacher)
- collectionView布局原理及瀑布流布局方式
- java遍历map的两种方法
- POJ 1159 最少添加几个字母构成回文 DP
- iOS堆栈的理解和区别
- 算法提高 选择排序( 递归算法)
- POJ 3974 Palindrome Manacher
- Ubuntu 14.04 安装盘制作(U盘)
- HDU 3294 Girls’ research Manacher
- 管程
- epoll使用详解
- [菜鸟笔记--JavaWeb的进阶之路二]
- 线程数据通信
- HDU 3068 最长回文 Manacher
- 输入输出流的几种方式