Orion_Rigel

AFO ——辣鸡OI 毁我青春 耗我钱财

BZOJ 1355 [Baltic2009]Radio Transmission

Description
给你一个字符串,它是由某个字符串不断自我连接形成的。 但是这个字符串是不确定的,现在只想知道它的最短长度是多少.


【题目分析】
简单的KMP水题,只需要输出l-next[l]就可以了。


【代码】

#include<cstdio>
#include<cstring>
char s[1000010];
int next[1000010];
int main()
{
    int i,j,k,m,n,p,q,x,y,z,l;
    scanf("%d%s",&l,s+1);
    for (i=2,j=0;i<=l;i++)
    {
        while (j&&s[i]!=s[j+1]) j=next[j];
        if (s[i]==s[j+1]) j++;
        next[i]=j;
    }
    printf("%d\n",l-next[l]);
}
阅读更多
版权声明:标注来源之后可随意引用[请记得添加友链] https://blog.csdn.net/Orion_Rigel/article/details/52347817
文章标签: bzoj kmp
个人分类: KMP
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭