马拉车板子

马拉车模板.因为不是很重要.加上原理经常忘记.这里贴一下,以备不时之需.

void Manacher(char *s,int len){

    int l=0;

    Ma[l++]='$';

    Ma[l++]='#';

    for (int i=0; i<len; i++){

        Ma[l++]=s[i];

        Ma[l++]='#';

    }

    Ma[l]=0;

    int mx=0,id=0;

    for (int i=0; i<l; i++){

        Mp[i]=mx>i ? min(Mp[2*id-i],mx-i) : 1;

        while (Ma[i+Mp[i]] == Ma[i-Mp[i]]) Mp[i]++;

        if (i+Mp[i] > mx) {

            mx=i+Mp[i];

            id=i;

        }

    }

}
lpt的小屋 文章被收录于专栏

我想要一份甜甜的爱情

全部评论
很重要的吧...求回文半径还是挺常用的吧 /kk
1 回复 分享
发布于 2020-10-22 16:56
mp是不包含自身的一个长度.
点赞 回复 分享
发布于 2020-10-22 17:01
字符串下标从0开始的.
点赞 回复 分享
发布于 2020-10-22 16:55

相关推荐

评论
6
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务