P3805 模板manacher算法
Posted feiief
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P3805 模板manacher算法相关的知识,希望对你有一定的参考价值。
#include <iostream> #include <algorithm> # define LL long long using namespace std; const int maxn=11000002; char data[maxn<<1]; int len[maxn<<1]; int idx; void input(){ idx=0; data[idx++]=‘#‘; char c=getchar(); while(c<‘a‘ || c>‘z‘) c=getchar(); while(c>=‘a‘ && c<=‘z‘){ data[idx++]=c; data[idx++]=‘#‘; c=getchar(); } idx--; } int main(){ input(); int mid=0; int rb=0; int res=0; for(int i=1;i<=idx;i++){ if(i<rb){ len[i]=min(rb-i,len[2*mid-i]); } while(i-len[i]>=0 && i+len[i]<=idx && data[i-len[i]]==data[i+len[i]]){ len[i]++; } len[i]--; res=max(res,len[i]); if(i+len[i]>rb){ mid=i; rb=i+len[i]; } } printf("%d", res); return 0; }
以上是关于P3805 模板manacher算法的主要内容,如果未能解决你的问题,请参考以下文章