KMP UVA1328 Period
2017-07-10 01:04
393 查看
https://vjudge.net/problem/UVA-1328
KMP求循环节的问题
KMP求循环节的问题
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 int n,l,j,cnt,et; 7 char s[1000010]; 8 int nt[1000010]; 9 int main(){ 10 while(scanf("%d",&n)==1&&n){ 11 scanf("%s",s+1); 12 j=0; 13 for(int i=2;i<=n;i++){ 14 while(j&&s[j+1]!=s[i]) j=nt[j]; 15 j+=(s[j+1]==s[i]); 16 nt[i]=j; 17 } 18 printf("Test case #%d\n",++cnt); 19 for(int i=2;i<=n;i++) 20 if(nt[i]>0&&(i%(i-nt[i])==0)) printf("%d %d\n",i,i/(i-nt[i])); 21 printf("\n"); 22 } 23 return 0; 24 }
相关文章推荐
- UVA 1328 - Period (KMP)
- UVA 1328 - Period KMP
- UVA1328 Period【KMP/周期串/循环节】By cellur925
- UVA 1328 Period(KMP:最短循环节)
- uva 1328 Period(KMP循环节)
- UVA 1328 - Period (KMP)
- UVA 1328 Period(KMP)
- uva 1328 - Period (周期串的判断 kmp)
- KMP【UVA1328】 Period
- uva 1328 Period(KMP)
- UVA-1328 - Period(KMP)
- UVa 1328 Period (KMP&失配函数的理解)
- UVa 1328 (KMP求字符串周期) Period
- UVA 1328 Period
- uvalive3026 Period (KMP+结论)
- Period UVALive - 3026(KMP)
- UVALive 3026 Period(KMP裸)
- UVa 1328 Period
- Period UVALive - 3026(KMP)
- Uvalive - 3026 Period (kmp求字符串的最小循环节+最大重复次数)