poj 2406 Power Strings求子串在主串中最多叠加次数

Posted can丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了poj 2406 Power Strings求子串在主串中最多叠加次数相关的知识,希望对你有一定的参考价值。

  1. #include<stdio.h>  
  2. #define M 1000010  
  3. int n,next[M];  
  4. char s[M];  
  5. void getNext()  
  6. {  
  7.         int i=1,j=-1;  
  8.         next[0]=-1;  
  9.         for(;s[i];i++){  
  10.                 while(j!=-1&&s[j+1]!=s[i])j=next[j];  
  11.                 if(s[j+1]==s[i])j++;  
  12.                 next[i]=j;  
  13.         }  
  14.         n=i;  
  15. }  
  16. int main()  
  17. {  
  18.         while(scanf("%s",s),s[0]!=‘.‘){  
  19.                 getNext();  
  20.                 if(n%(n-next[n-1]-1))puts("1");  
  21.                 else printf("%d\n",n/(n-next[n-1]-1));  
  22.         }  
  23.         return 0;  
  24. }  

以上是关于poj 2406 Power Strings求子串在主串中最多叠加次数的主要内容,如果未能解决你的问题,请参考以下文章

POJ 2406 Power Strings 暴力

POJ 2406 Power Strings

poj 2406 Power Strings(KMP)

Power Strings POJ - 2406(next水的一发 || 后缀数组)

poj2406:Power Strings——题解

POJ-2406Power Strings-KMP+定理