hdu-1358 kmp,next数组的应用
2017-08-15 11:20
369 查看
一个长度为 n 的字符串,求该字符串的循环前缀的长度,和循环次数
#include<stdio.h> #include<string.h> int n; int next[1200000]; char s[1200000]; void getnext() { int i,j; i=0; j=-1; next[0]=-1; while(i<n) { if(j==-1||s[i]==s[j]) { next[++i]=++j; if(i%(i-j)==0&&i/(i-j)>1) printf("%d %d\n",i,(i/(i-j))); } else j=next[j]; } } int main(void) { int m=1; while(scanf("%d",&n)!=EOF) { if(n==0) break; getchar(); for(int i=0;i<n;i++) scanf("%c",&s[i]); printf("Test case #%d\n",m++); getnext(); printf("\n"); } return 0; }
相关文章推荐
- hdu1358 KMP中next数组的应用
- hdu_1358_kmp_next_数组简单应用
- hdu 1358 Period(KMP之next数组)
- 【next数组应用】HDU 1358 Period
- hdu 1358 Period(KMP之next数组)
- hdu 1358 Period(KMP之next数组)
- hdu 1358 Period(KMP之next数组)
- hdu 3746 KMP next数组的应用
- hdu 1358 Period(KMP之next数组)
- hdu 1358 Period(KMP之next数组)
- hdu 1358 Period(KMP之next数组)
- 【HDU 3336】Count the string 【KMP next数组巧妙应用】
- HDOJ 1358.Period(KMP中next数组应用)
- hdu 1358 Period(KMP之next数组)
- 【HDU 4552】怪盗基德的挑战书 【KMP next数组的巧妙应用】
- hdu 1358 Period(KMP之next数组)
- hdu 1358 Period(KMP之next数组)
- HDU 1358 Period(KMP+next数组的运用)
- hdu 1358 Period(KMP之next数组)
- HDU--杭电--1358--Period--KMP--next值的应用