题目:求一个串的最大的循环次数。
分析:dp,KMP,字符串。这里利用KMP算法。
KMP的next函数是跳跃到最近的串的递归结构位置(串元素取值0 ~ len-1);
由KMP过程可知:
如果存在循环节,则S[0 ~ next[len]-1] 与 S[len-next[len] ~ len-1]相匹配;
...
分类:
其他好文 时间:
2014-08-21 22:48:45
阅读次数:
343
构造题
最多可以是k的d次方的学生不成为朋友
循环节的长度以k为倍数翻倍
注意long long
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
typedef long long ll;
int main()
{
ll n,m,d,maxx=1...
分类:
其他好文 时间:
2014-08-21 21:17:34
阅读次数:
211
题意:就是让你求出最小的字符矩阵面积,这个矩阵是这个大矩阵里能够循环的,但是并不一定是全部循环相同的,部分相同也算循环,比如样例。
思路:这题挺好的,以前没有想到二维字符串数组也可以用next数组求出其循环节,现在这题正好补了这个空。
解法:把每一个字符串当做字符进行求next数组,然后求出最小的循环字符串长度,即:len-next[len]。因为以前求循环节是len/(len-next[le...
分类:
其他好文 时间:
2014-08-20 16:30:12
阅读次数:
212
这题根据公式可以得出规律当出现 1 1时 表示达到循环节点因此可以打表求余得出结果但是至于为什么49 是最大周期找到了点资料是说每个数是有前两个数来决定而数的结果只有0 到6 七种可能因此是 7*7=49只能意会了 而且还出现了奇怪的bug 把for循环换成while就一直wa如果只有49次不是应该...
分类:
其他好文 时间:
2014-08-20 02:30:55
阅读次数:
239
见这里:http://blog.csdn.net/ACdreamers/article/details/25616461 有详细的分析推理只找出了循环节的上限,设 f[n] = (af[n - 1] + b[n - 2])%P,设序列a ={ f[1], f[2] }, 考虑t项后, b ={ f[...
分类:
其他好文 时间:
2014-08-19 03:16:37
阅读次数:
226
暴力找循环节,矩阵快速幂#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include usi...
分类:
其他好文 时间:
2014-08-15 12:04:48
阅读次数:
233
题解:因为模比较小,所以一定会产生循环节,所有先计算循环节,然后直接求解。#include int main(){ int a,b,n,f[50]; f[1]=f[2]=1; while(scanf("%d%d%d",&a,&b,&n),a|b|n){ int t1,t2,...
分类:
其他好文 时间:
2014-08-14 10:42:18
阅读次数:
170
找每一位的循环节,求lcm
Double Dealing
Time Limit: 50000/20000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1806 Accepted Submission(s): 622
Problem De...
分类:
其他好文 时间:
2014-08-14 01:31:17
阅读次数:
263
//len-next[len]为最小循环节的长度
# include
# include
# include
using namespace std;
int len;
char a[100010];
int next[100010];
void Getnext()
{
int i=0,j=-1;
next[0]=-1;
while(i<=len)
{
...
分类:
其他好文 时间:
2014-08-13 22:41:57
阅读次数:
450