【bzoj1355】 [Baltic2009]Radio Transmission
2017-07-20 22:57
253 查看
Description
给你一个字符串,它是由某个字符串不断自我连接形成的。但是这个字符串是不确定的,现在只想知道它的最短长度是多少.Input
第一行给出字符串的长度,1 < L ≤ 1,000,000.第二行给出一个字符串,全由小写字母组成.Output
输出最短的长度Sample Input
8cabcabca
Sample Output
3HINT
对于样例,我们可以利用"abc"不断自我连接得到"abcabcabc",读入的cabcabca,是它的子串Solve
进行KMP,发现最小循环节长度即为len-fail[len]
#include<iostream>
#include<cstdlib>
#include<cstdio>
using namespace std;
char ch[1000005];
int len,p[1000005];
int main (){
scanf ("%d%s",&len,ch+1);
for (int i=2,j=0;i<=len;++i){
while (j && ch[j+1]!=ch[i])j=p[j];
if (ch[j+1]==ch[i])j++;
p[i]=j;
}
printf ("%d",len-p[len]);
return 0;
}
相关文章推荐
- bzoj1355: [Baltic2009]Radio Transmission
- 【bzoj 1355】 [Baltic2009]Radio Transmission(kmp)
- 【BZOJ】1355 [Baltic2009]Radio Transmission
- bzoj1355【Baltic2009】Radio Transmission
- BZOJ1355: [Baltic2009]Radio Transmission
- BZOJ1355: [Baltic2009]Radio Transmission
- BZOJ 1355: [Baltic2009]Radio Transmission [KMP 循环节]
- 【bzoj1355】【Baltic2009】【Radio Transmission】【kmp】
- 【BZOJ1355】【Baltic2009】Radio Transmission 详细证明【KMP】
- 【Baltic2009】bzoj 1355 Radio Transmission
- 【BZOJ 1355】[Baltic2009]Radio Transmission
- [Bzoj1355][Baltic2009]Radio Transmission(KMP)
- [BZOJ1355][Baltic2009]Radio Transmission(kmp)
- BZOJ 1355 Baltic2009 Radio Transmission KMP算法
- KMP:【BZOJ1355】【Baltic2009】Radio Transmission
- bzoj 1355: [Baltic2009]Radio Transmission
- bzoj1355: [Baltic2009]Radio Transmission(kmp求循环节)
- BZOJ 1355 [Baltic2009]Radio Transmission
- 【BZOJ 1355】 [Baltic2009]Radio Transmission
- [bzoj1355][Baltic2009]Radio Transmission_KMP