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算法的主要内容,如果未能解决你的问题,请参考以下文章

P3805 模板manacher算法

[洛谷P3805]模板manacher算法

P3805 模板manacher算法

洛谷P3805 [模板]Manacher算法 [manacher]

P3805 模板manacher 算法马拉车

字符串-Manacher算法(你知道马拉车算法吗?)