poj1961
主要是考察对next数组的理解,
abaabaabaaba
abaabaaba
abaabaaba
错开的部分便是循环节

7月29日更

如果n%(n-kmp[k])==0,那么n-kmp[k]便是循环节的长度,我来解释一下为什么

#include<iostream>
#include<cstdio>
#include<queue>
#include<algorithm>
#include<cmath>
#include<ctime>
#include<set>
#include<map>
#include<stack>
#include<cstring>
#define inf 2147483647
#define ls rt<<1
#define rs rt<<1|1
#define lson ls,nl,mid,l,r
#define rson rs,mid+1,nr,l,r
#define N 1000010
#define For(i,a,b) for(int i=a;i<=b;i++)
#define p(a) putchar(a)
#define g() getchar() using namespace std;
int kmp[N];
int n,k;
char a[N];
int cnt;
void in(int &x){
int y=;
char c=g();x=;
while(c<''||c>''){
if(c=='-')y=-;
c=g();
}
while(c<=''&&c>=''){
x=(x<<)+(x<<)+c-'';c=g();
}
x*=y;
}
void o(int x){
if(x<){
p('-');
x=-x;
}
if(x>)o(x/);
p(x%+'');
} void clear(){
memset(kmp,,sizeof(kmp));
k=;
} int main(){
while(cin>>n&&n){
clear();
cin>>(a+);
For(i,,n){
while(k&&a[i]!=a[k+])
k=kmp[k];
if(a[k+]==a[i])
k++;
kmp[i]=k;
}
cout<<"Test case #"<<++cnt<<endl;
For(i,,n)
if(kmp[i]>&&i%(i-kmp[i])==){
o(i);p(' ');o(i/(i-kmp[i]));p('\n');
}
p('\n');
}
return ;
}

最新文章

  1. hibernate 中根据id删除一条记录的语句
  2. BOOST_AUTO宏
  3. Websocket Component
  4. 如何在yii的controller中调用外部action
  5. [URAL]刷题记录表
  6. jmeter之json数据参数化 断言等
  7. Javascript 原型注意事项
  8. C语言--流程控制
  9. Android开发(27)--TextView单击链接弹出Activity
  10. IOS开发中绘制地图线路
  11. 记录下actionbar的翻译
  12. Javascript面对对象. 第二篇
  13. jump堡垒机配置使用
  14. The content of elements must consist of well-formed character data or markup
  15. Linux记录-安装LAMP和R环境
  16. RV32A指令集
  17. MVC备忘笔记
  18. Python3.6 AES加密 pycrypto‎ 更新为 pycrypto‎demo | TypeError: Object type &lt;class &#39;str&#39;&gt; cannot be passed to C code
  19. vim删除文件第n行到结尾、或某段内容
  20. 20145105 《Java程序设计》第3周学习总结

热门文章

  1. netty 解决粘包拆包问题
  2. 2019-8-31-dotnet-获取程序所在路径的方法
  3. Leetcode92. Reverse Linked List II反转链表
  4. Oracle SQL性能优化【转】
  5. 关于安装了sqlite对于vs的组件,重启vs后,在外面可以连接sqlite数据库,但是在建立实体模型时没有sqlite数据源的问题
  6. leetcode-买卖股票最佳时机含冷冻期
  7. HTML - 表单标签相关
  8. sudo apt-get常用命令
  9. Object.keys()应用
  10. vue alert插件(标题为图片)(自写)