BZOJ 1355 [Baltic2009]Radio Transmission

来源:互联网 发布:sql复制数据库 编辑:程序博客网 时间:2024/05/16 07:05

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]);}
0 0
原创粉丝点击