SPOJ
来源:互联网 发布:英国文化的特点知乎 编辑:程序博客网 时间:2024/06/15 13:39
KMP 循环节出现次数(对于整个串来说)
可见:http://blog.csdn.net/xiang_6/article/details/78426778
#include<iostream>#include<algorithm>#include<cstdio>#include<cstdlib>#include<cstring>#include<string>#include<cmath>#include<set>#include<queue>#include<stack>#include<map>#define PI acos(-1.0)#define in freopen("in.txt", "r", stdin)#define out freopen("out.txt", "w", stdout)using namespace std;typedef long long ll;typedef unsigned long long ull;const int maxn = 1e6 + 7, maxd = 1e4 + 7, mod = 1e9 + 7;const ll INF = 0x7f7f7f7f;int n, ans;char s[maxn];int f[maxn];void init() { f[0] = f[1] = 0; for(int i = 1; i < n; ++i) { int j = f[i]; while( j && s[i] != s[j]) j = f[j]; f[i+1] = (s[i] == s[j] ? j+1 : 0); } //for(int i = 0; i <= len; ++i) // cout << f[i] << " ";}void solve() { for(int i = 2; i <= n; ++i) { int t = (i / (i-f[i])); if( i % (i-f[i]) == 0 && t != 1) { printf("%d %d\n", i, t); } } puts("");}int main() { int kase = 1; int T; scanf("%d", &T); while(T--) { scanf("%d", &n);// && n scanf("%s", s); init(); printf("Test case #%d\n", kase++); solve(); } return 0;}
阅读全文
1 0
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- 水题
- vue中mock.js使用
- svn备份和导入
- [bzoj2288][贪心][堆][链表][POJ Challenge]生日礼物
- DeepLearning——Restricted Boltzmann Machines
- SPOJ
- 费马小定理及其逆命题的应用
- 在Win7编译和安装MxNet
- 二叉树-根据已知的遍历顺序还原二叉树
- MapReduce实现基本SQL操作的原理-join和group by,以及Dinstinct
- Java解析PDF文件(PDFBOX、itext解析PDF)导出PDF中的子图片,去除PDF中的水印
- nginx源码学习
- MAC移动端抓包注意
- java编写RabbitMQ 的demo