BZOJ 1355: [Baltic2009]Radio Transmission
2017-05-01 21:30
323 查看
Description
给你一个字符串,它是由某个字符串不断自我连接形成的。 但是这个字符串是不确定的,现在只想知道它的最短长度是多少.Input
第一行给出字符串的长度,1 < L ≤ 1,000,000. 第二行给出一个字符串,全由小写字母组成.Output
输出最短的长度Sample Input
8cabcabca
Sample Output
3HINT
对于样例,我们可以利用”abc”不断自我连接得到”abcabcabc”,读入的cabcabca,是它的子串分析
答案为:n-next代码
#include <bits/stdc++.h> #define N 1000005 char ch ; int next ; int n; int read() { int x = 0, f = 1; char ch = getchar(); while (ch < '0' || ch > '9') {if (ch == '-') f = -1; ch = getchar();} while (ch >= '0' && ch <= '9') {x = x * 10 + ch - '0'; ch = getchar();} return x * f; } void getNext() { next[0] = -1; int i = 2, j = 0; while (i <= n) { if (ch[i] == ch[j + 1] || j == -1) { next[i] = ++j; i++; } else j = next[j]; } } int main() { n = read(); scanf("%s", ch + 1); getNext(); printf("%d\n", n - next ); }
相关文章推荐
- 【bzoj 1355】[Baltic2009]Radio Transmission(kmp)
- BZOJ 1355 [Baltic2009]Radio Transmission Hash/KMP
- bzoj1355: [Baltic2009]Radio Transmission(kmp求循环节)
- 【bzoj 1355】 [Baltic2009]Radio Transmission(kmp)
- BZOJ 1355 [Baltic2009]Radio Transmission KMP
- [Bzoj1355][Baltic2009]Radio Transmission(KMP)
- [BZOJ1355][Baltic2009]Radio Transmission(kmp)
- BZOJ 1355: [Baltic2009]Radio Transmission KMP
- 【BZOJ1355】【Baltic2009】Radio Transmission 详细证明【KMP】
- 【bzoj1355】[Baltic2009]Radio Transmission KMP
- 【bzoj1355】【Baltic2009】【Radio Transmission】【kmp】
- BZOJ 1355: [Baltic2009]Radio Transmission( kmp )
- Bzoj 1355: [Baltic2009]Radio Transmission(kmp)
- 【BZOJ】【P1355】【Baltic2009】【Radio Transmission】【KMP】
- BZOJ1355: [Baltic2009]Radio Transmission
- BZOJ1355: [Baltic2009]Radio Transmission
- bzoj1355: [Baltic2009]Radio Transmission
- 【Baltic2009】bzoj 1355 Radio Transmission
- BZOJ 1355 Baltic2009 Radio Transmission KMP算法
- BZOJ 1355 Baltic2009 Radio Transmission KMP算法