Bzoj 1355: [Baltic2009]Radio Transmission(kmp)
2017-02-06 11:07
411 查看
1355: [Baltic2009]Radio Transmission
Time Limit: 10 Sec Memory Limit: 64 MB
Description
给你一个字符串,它是由某个字符串不断自我连接形成的。 但是这个字符串是不确定的,现在只想知道它的最短长度是多少.
Input
第一行给出字符串的长度,1 < L ≤ 1,000,000. 第二行给出一个字符串,全由小写字母组成.
Output
输出最短的长度
Sample Input
8
cabcabca
Sample Output
3
HINT
对于样例,我们可以利用”abc”不断自我连接得到”abcabcabc”,读入的cabcabca,是它的子串
Time Limit: 10 Sec Memory Limit: 64 MB
Description
给你一个字符串,它是由某个字符串不断自我连接形成的。 但是这个字符串是不确定的,现在只想知道它的最短长度是多少.
Input
第一行给出字符串的长度,1 < L ≤ 1,000,000. 第二行给出一个字符串,全由小写字母组成.
Output
输出最短的长度
Sample Input
8
cabcabca
Sample Output
3
HINT
对于样例,我们可以利用”abc”不断自我连接得到”abcabcabc”,读入的cabcabca,是它的子串
/* kmp. 找循环节n-next . 只能感性的认识. 先记住吧. 不会证明orz. */ #include<iostream> #include<cstdio> #define MAXN 1000001 using namespace std; int l1,ans,next[MAXN]; char s[MAXN]; 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-48,ch=getchar(); return x*f; } void kmp() { int p=0; for(int i=2;i<=l1;i++) { while(p&&s[i]!=s[p+1]) p=next[p]; if(s[i]==s[p+1]) p++; next[i]=p; } printf("%d",l1-next[l1]); } int main() { scanf("%d",&l1); scanf("%s",s+1); kmp(); return 0; }
相关文章推荐
- BZOJ 1355: [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
- [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
- 【BZOJ1355】【Baltic2009】Radio Transmission 详细证明【KMP】
- BZOJ 1355 [Baltic2009]Radio Transmission Hash/KMP
- 【BZOJ】【P1355】【Baltic2009】【Radio Transmission】【KMP】
- BZOJ 1355: [Baltic2009]Radio Transmission
- 【 bzoj 1355 】 [Baltic2009]Radio Transmission - KMP
- [bzoj1355][Baltic2009]Radio Transmission_KMP
- KMP:【BZOJ1355】【Baltic2009】Radio Transmission
- bzoj 1355: [Baltic2009]Radio Transmission【kmp】
- BZOJ 1355: [Baltic2009]Radio Transmission [KMP 循环节]
- [BZOJ1355][Baltic2009][KMP]Radio Transmission