博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 3974 Palindrome | 马拉车模板
阅读量:5264 次
发布时间:2019-06-14

本文共 698 字,大约阅读时间需要 2 分钟。

给一个字符串,求最长回文字串有多长


#include
#include
#include
#define N 1000005using namespace std;int n,m,T,p[N*2],ans;char s[2*N],t[N];void manacher(){ int id=0,pos=0,x=0; for (int i=1;i<+n;i++) { if (pos>i) x=min(p[id*2-i],pos-i); else x=1; while (s[i-x]==s[i+x]) x++; if (i+x>pos) pos=i+x,id=i; p[i]=x; }}int main(){ while (scanf("%s",t+1) && t[1]!='E') { ans=0; m=strlen(t+1); s[n=0]='!'; for (int i=1;i<=m;i++) { s[++n]='#'; s[++n]=t[i]; } s[++n]='#'; s[n+1]='?'; manacher(); for (int i=1;i<=n;i++) ans=max(ans,p[i]); printf("Case %d: %d\n",++T,ans-1); } return 0;}

 

转载于:https://www.cnblogs.com/mrsheep/p/7976877.html

你可能感兴趣的文章
Linux环境变量永久设置方法(zsh)
查看>>
MVC4.0 利用IActionFilter实现简单的后台操作日志功能
查看>>
脑袋卡在窗子里
查看>>
ruby 中文字符to_json后乱码(unicode)
查看>>
《大道至简》第六章读后感
查看>>
codeforce 597C-Subsequences(dp+树状数组)
查看>>
[android](学习笔记6)为应用程序添加对话框(1)
查看>>
windows下mongodb安装与使用
查看>>
rotate the clock
查看>>
bugku 变量
查看>>
Python 环境傻瓜式搭建 :Anaconda概述
查看>>
数据库01 /Mysql初识以及基本命令操作
查看>>
数据库02 /MySQL基础数据类型以及多表之间建立联系
查看>>
Python并发编程04/多线程
查看>>
CF461B Appleman and Tree
查看>>
CF219D Choosing Capital for Treeland
查看>>
杂七杂八的小笔记本
查看>>
51Nod1353 树
查看>>
CF1215E Marbles
查看>>
.net Core 图片验证码 基于SkiaSharp实现
查看>>