hdu3746 利用KMP找循环节
来源:互联网 发布:sqlserver连接oracle 编辑:程序博客网 时间:2024/06/05 21:02
题意:在一个串的后面添加若干字符,使其成为一个循环串。
/*利用next数组求循环节结论:当且仅当len%(len-next[len-1])==0时,s[next[len-1]~len-1]为最小循环节*/#include<stdio.h>const int N=100005;char s[N];int next[N],len;void getnext(){ int i,j; next[0]=0; for(i=1,j=0;s[i];i++) { while(j>0&&s[i]!=s[j]) j=next[j-1]; if(s[i]==s[j]) j++; next[i]=j; } len=i;}int main(){ int t; scanf("%d",&t); while(t--) { scanf("%s",s); getnext(); int c=len-next[len-1]; if(len%c==0) { if(len/c>1) printf("0\n"); else printf("%d\n",len); } else printf("%d\n",c-(len-len/c*c)); } return 0;}
- hdu3746 利用KMP找循环节
- hdu3746 Cyclic Nacklace(kmp找循环节)
- HDU3746 Cyclic Nacklace KMP找循环节
- HDU3746-KMP循环节
- 【KMP】【HDU3746】【最小循环节】
- HDU3746--KMP+最小循环节
- 【KMP】 hdu3746 kmp求循环节长度
- hdu3746 Cyclic Nacklace KMP判断循环节
- HDU3746(KMP求循环节)
- HDU3746 Cyclic Nacklace(KMP+最小循环节)
- HDU3746 Cyclic Nacklace(KMP,最小循环节)
- HDU 3746利用KMP找循环节
- KMP找循环节
- D - Cyclic Nacklace HDU3746 (kmp 计算字符串最小循环节 )
- hdu3746 Cyclic Nacklace(kmp周期 最小循环节)
- [KMP求最小循环节][HDU3746][Cyclic Nacklace]
- hdu3746(KMP)
- hdu3746 KMP
- 《unix环境高级编程》APUE 习题5.4 的解答
- shengka laba tongshi xiang
- Install Yinxiang plugin on International Firefox
- 大并发服务器不得不说的技术--sendfile
- UCGUI中的中的设备驱动解析
- hdu3746 利用KMP找循环节
- [Python入门及进阶笔记]Python-基础-内置函数小结
- javascript 保存页面图片
- hdu1754
- 自我剖析,以示自戒
- 关于python模块自动安装(setuptools)
- Judging Olympia
- 申请的阿里云服务器一定要记得挂载数据盘
- 程序员总结:帮助你早些明白一些道理