BZOJ1355: [Baltic2009]Radio Transmission
2017-05-24 07:55
204 查看
易水人去,明月如霜。
Description
给你一个字符串,它是由某个字符串不断自我连接形成的。但是这个字符串是不确定的,现在只想知道它的最短长度是多少.Input
第一行给出字符串的长度,1 < L ≤ 1,000,000.第二行给出一个字符串,全由小写字母组成.Output
输出最短的长度#include <cstdio> #include <cstring> #include <iostream> #include <cmath> using namespace std; char a[1000005]; int nxt[1000005]; int main() { int n; scanf("%d",&n); char ph; //scanf("%c",&ph); scanf("%s",a+1); int len=strlen(a+1); int j=0; for(int i=2;i<=n;i++) { while(j!=0&&a[i]!=a[j+1]) j=nxt[j]; if(a[i]==a[j+1]) j++; nxt[i]=j; } printf("%d\n",n-nxt ); return 0; }
Sample Input
8cabcabca
Sample Output
3HINT
对于样例,我们可以利用"abc"不断自我连接得到"abcabcabc",读入的cabcabca,是它的子串思路:
KMP
代码:
相关文章推荐
- 【kmp算法】bzoj1355 [Baltic2009]Radio Transmission
- BZOJ 1355: [Baltic2009]Radio Transmission [KMP 循环节]
- bzoj1355: [Baltic2009]Radio Transmission(kmp求循环节)
- bzoj 1355: [Baltic2009]Radio Transmission【kmp】
- [BZOJ1355][Baltic2009]Radio Transmission(kmp)
- BZOJ 1355 Baltic2009 Radio Transmission KMP算法
- 【Baltic2009】bzoj 1355 Radio Transmission
- 【 bzoj 1355 】 [Baltic2009]Radio Transmission - KMP
- 【BZOJ 1355】[Baltic2009]Radio Transmission
- BZOJ 1355 [Baltic2009]Radio Transmission Hash/KMP
- [BZOJ1355] [Baltic2009]Radio Transmission
- bzoj 1355: [Baltic2009]Radio Transmission
- BZOJ 1355 [Baltic2009]Radio Transmission
- BZOJ 1355: [Baltic2009]Radio Transmission( kmp )
- 【bzoj1355】[Baltic2009]Radio Transmission KMP
- 【bzoj1355】 [Baltic2009]Radio Transmission
- BZOJ 1355: [Baltic2009]Radio Transmission KMP
- BZOJ1355: [Baltic2009]Radio Transmission
- 【BZOJ 1355】 [Baltic2009]Radio Transmission
- BZOJ 1355 Baltic2009 Radio Transmission KMP算法