POJ 1961
2015-06-10 16:52
295 查看
#include<iostream> #include<stdio.h> #define MAXN 1000001 using namespace std; char c[MAXN]; int next[MAXN]; void give_next(int len) { int i; int j; i=0,j=-1; next[0]=-1; while(i < len) { if(j == -1 || c[i] == c[j]) { i ++; j ++; next[i] = j; } else j = next[j]; } } int main() { //freopen("acm.acm","r",stdin); int size; int tem; int tem1; int time = 0; while(scanf("%d",&size) != EOF,size) { cout<<"Test case #"<<++ time<<endl; scanf("%s",c); int i; give_next(size); for(i = 2; i <= size; ++ i) { if(next[i-1] != -1) { tem = i - (next[i]); if(i % tem == 0) { tem1 = i/tem; if(tem1 > 1) cout<<i<<" "<<tem1<<endl; } } } cout<<endl; } }
相关文章推荐
- Mybatis学习(三)搭建mybatis的入门程序的运行环境
- DNS报文格式
- Ubuntu-14.04 安装qemu-kvm调试Linux-3.16.0的内核(一)
- gem5中使用spec2006并创建simpoints
- 有个扫描二维码的扩展,还不错
- POJ 1939
- POJ 1936
- POJ 1940
- JAVA中获得一个月最大天数的方法(备忘)
- 哈希表(Hash table)(1)
- 使用log4j让日志写入数据库
- 我不是来黑小兔子的。【来点humor】
- 在Linux上安装ArcGIS许可管理器备忘录
- Multipart/form-data POST文件上传分析
- web service(SOAP)与HTTP接口的区别
- POJ 3206 最小生成树
- Linux 命令
- inode、软连接、硬链接
- POJ 1928
- POJ 1906