hdu1358 KMP循环节
2016-04-13 20:52
148 查看
#include <iostream> #include <cstdio> #include <string> #include <cstring> #include <fstream> #include <algorithm> #include <cmath> #include <queue> #include <stack> #include <vector> #include <map> #include <set> #include <iomanip> using namespace std; #pragma comment(linker, "/STACK:102400000,102400000") #define maxn 1000005 #define MOD 1000000007 #define mem(a , b) memset(a , b , sizeof(a)) #define LL long long #define ULL long long const long long INF=0x3fffffff; char a[maxn]; int Next[maxn]; //ofstream ofile; int main() { int cases=1 , m; while(scanf("%d",&m) != EOF && m) { scanf("%s" , a+1); mem(Next , 0); int num = 0; for(int i = 2 ; i <= m ; i ++) { while(num > 0 && a[num + 1] != a[i]) num = Next[num]; if(a[num+1] == a[i]) num++; Next[i] = num; } printf("Test case #%d\n",cases++); for(int i = 2 ; i <= m ; i ++) if(i % (i-Next[i]) == 0 && Next[i] != 0) printf("%d %d\n",i,i/(i-Next[i])); printf("\n"); } return 0; }
相关文章推荐
- mysqli的认识与应用
- BigDecimal计费
- 团队计划会议-01
- 转:mybatis3中@SelectProvider的使用技巧
- Error MSB6006: “mt.exe”已退出,代码为 31
- 关于取模和取余的区别。
- android socket基于mina框架实现和服务器长连接
- IOS学习之[深入浅出Cocoa]iOS网络编程之Socket
- NYOJ-23 取石子(一)
- 虚幻4 渲染线程主循环
- atitit.解决net.sf.json.JSONException There is a cycle in the hierarchy
- 三角形5
- Eclipse中使用Ant打Android包报错及解决方案
- 用SurfaceView实现Android游戏摇杆
- 面试题之二维数组中的查找
- SVM
- monkey源代码分析之事件注入方法变化
- 异常
- 第六周作业----单元测试
- Stay hungry, Stay foolish 的原义