BZOJ 1355 [Baltic2009]Radio Transmission

来源:互联网 发布:淘宝网怎么登录不了 编辑:程序博客网 时间:2024/05/26 12:55

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


【题目分析】
和poj上那道循环节的题目很像,但是又没有要求必须是可以整除的。所以直接输出n-next[n]就可以了。一道权限题,14行搞定(没有缩行)。感觉bzoj药丸啊。


【代码】

#include <cstdio>char s[1000005];int next[1000005],n,j=0;int main(){    scanf("%d%s",&n,s+1);    for (int i=2;i<=n;++i)    {        while (j>0&&s[j+1]!=s[i]) j=next[j];        if (s[j+1]==s[i]) j++;        next[i]=j;    }    printf("%d\n",n-next[n]);}
0 0
原创粉丝点击