博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ1961 Period [KMP应用]
阅读量:6606 次
发布时间:2019-06-24

本文共 727 字,大约阅读时间需要 2 分钟。

  考察对KMP的next数组的掌握,next数组也就是失败指针指向它失败后应该指向的位置,next[i]~i之间就是一个循环节,所以只要满足i%(i-next[i])==0即可。

#include 
#include
int cas=1,n;char s[1000005];int next[1000005];void solve(){ next[1]=0; int len=strlen(s+1); for(int i=2,j=0;i<=len;i++){ while(j>0&&s[i]!=s[j+1])j=next[j]; if(s[i]==s[j+1])j++; next[i]=j; if(i%(i-next[i])==0&&i/(i-next[i])!=1){ printf("%d %d\n",i,i/(i-next[i])); } }}int main(){//freopen("test.in","r",stdin); while(scanf("%d",&n),n){ scanf("%s",s+1); printf("Test case #%d\n",cas++); solve(); printf("\n"); } return 0;}

转载于:https://www.cnblogs.com/swm8023/archive/2012/08/02/2620810.html

你可能感兴趣的文章
java中常用的类型转换
查看>>
【log4j】使用Log4j?,slf4j更轻巧高效
查看>>
第三章 创建命令
查看>>
kuangbin专题七 POJ3264 Balanced Lineup (线段树最大最小)
查看>>
JS动画效果链接汇总
查看>>
父类转为子类涉及到的安全问题
查看>>
网络流,流水线模拟
查看>>
知识点笔记
查看>>
陈云川的OPENLDAP系列
查看>>
django 模型-----自连接
查看>>
P1197 [JSOI2008]星球大战
查看>>
将某个目录下的 文件(字符窜) 只将数字过滤出来
查看>>
urllib模块
查看>>
XML转义字符
查看>>
【vue】vue +element 搭建及开发中项目中,遇到的错误提示
查看>>
微信小程序之简单记账本开发记录(六)
查看>>
死锁和活锁
查看>>
js生成二维码
查看>>
去除input[type=number]的默认样式
查看>>
PowerDeigner 一个很好的画uml 和建模的软件
查看>>