【KMP(循环节)】hdu 3746 Cyclic Nacklace
2013-11-26 18:23
495 查看
http://acm.hdu.edu.cn/showproblem.php?pid=3746
分析:差多少补成有循环节的字符串
分析:差多少补成有循环节的字符串
#include <iostream> #include <cstdio> #include <cstring> using namespace std; const int NM=100005; int next[NM]; char str[NM]; void get_next(int len) { int i,j; next[0]=-1; j=-1;i=0; while(i<len) //最朴素的KMP { if(j==-1||str[i]==str[j]) { i++; j++; next[i]=j; } else j=next[j]; } } int main() { int T,ans,len; scanf("%d",&T); while(T--) { scanf("%s",str); len=strlen(str); get_next(len); ans=len-next[len]; //最小的循环节 if(ans!=len&&len%ans==0) printf("0\n"); else printf("%d\n",ans-len%ans); } return 0; }
相关文章推荐
- HDU 3746 Cyclic Nacklace (KMP 循环节)
- HDU 3746|Cyclic Nacklace|KMP求最小循环节
- hdu 3746 Cyclic Nacklace (KMP求最小循环节)
- HDU 3746 Cyclic Nacklace [KMP+循环节]
- HDU 3746 Cyclic Nacklace(KMP最小循环节)
- HDU 3746 Cyclic Nacklace 环形项链(KMP,循环节)
- HDU 3746 Cyclic Nacklace(KMP+最小循环节)
- 【kmp循环节】hdu 3746 Cyclic Nacklace
- HDU - 3746 Cyclic Nacklace(KMP 循环节)
- HDU 3746--Cyclic Nacklace【KMP(最小循环节)】
- HDU 3746 Cyclic Nacklace (KMP和循环节)
- HDU 3746 (KMP求最小循环节) Cyclic Nacklace
- HDU 3746 Cyclic Nacklace(KMP找循环节)
- hdu 3746 Cyclic Nacklace (KMP求最小循环节)
- HDU 3746 Cyclic Nacklace (KMP找循环节)
- HDU - 3746 Cyclic Nacklace (kmp循环节)
- HDU 3746 Cyclic Nacklace(KMP:补齐循环节)
- [KMP-求循环节]HDU 3746 Cyclic Nacklace
- hdu 3746 Cyclic Nacklace (kmp扩展—最小循环节)
- HDU 3746 Cyclic Nacklace(KMP找循环节)