HDU 1358
来源:互联网 发布:spss手机版软件 编辑:程序博客网 时间:2024/06/06 17:38
题意:给你一组字符串,问从第二个位置开始,前n个字符串是否循环,循环的位置,以及循环的次数、
思路:next数组最基本的两大特点之一,找出当前的循环节,以及循环长度、 再判断是否循环,直接输出当前串的长度/循环节的长度便可、唯一需要注意的就是最后多了个换行、
AC代码:
#include<cstdio>#include<cstring>const int maxn=1000000;int lent;char T[maxn];int next[maxn];int cnt;void get_next(){ memset(next,0,sizeof(next)); int i=0;int j=-1;next[0]=-1; while(i<lent){ if(j==-1||T[i]==T[j]) next[++i]=++j; else j=next[j]; }}int main(){ cnt=1; while(scanf("%d",&lent)&&lent){ scanf("%s",T); get_next(); printf("Test case #%d\n",cnt++); for(int i=2;i<=lent;i++){ if(next[i]>0){ if(i%(i-next[i])==0) printf("%d %d\n",i,i/(i-next[i])); } } printf("\n"); } return 0;}
0 0
- hdu-1358
- hdu 1358
- HDU 1358
- hdu 1358
- HDU 1358
- HDU 1358
- HDU-1358
- hdu 1358
- hdu 1358
- HDU-1358
- HDU 1358 Period (KMP)
- hdu 1358 KMP运用
- hdu 1358 KMP
- HDU 1358 Period
- HDU-1358(Next_period)
- hdu 1358 kmp
- hdu 1358 Period
- hdu 1358 Period
- APK 的安装与卸载
- linux 内核编译 (如何正确选择内核驱动)
- [LintCode]Segment Tree Build 构造线段树
- assign,retain,copy,weak,strong,readonly,nonatomic ,atomic 8个属性的特征
- javascript把数字格式化转换成货币型
- HDU 1358
- 数据库(第一范式,第二范式,第三范式)
- Windows 万能守护进程
- MySQL联合查询语法内联、左联、右联、全联
- java web项目中调用ocx遇到的问题!(无法调用)
- AVL实现平衡二叉树
- JAVA经典面试题:四线程写四个文件
- 西风的数据结构教程(3)——二叉树
- Alipay(支付宝)接口相关