![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
KMP
cheung99857
这个作者很懒,什么都没留下…
展开
-
HDU - 3746 Cyclic Nacklace 【KMP模板 求字符串循环节个数【最大/最小循环节的个数
求最循环节的个数:#include "iostream"#include "algorithm"#include "cstring"#include "cstdio"#include "iomanip"using namespace std;string a;int nextt[100005];void getnext(){ int i=0,j=-1; n...原创 2018-08-18 09:15:43 · 3715 阅读 · 0 评论 -
HDU - 1711 [KMP模板
#include "iostream"#include "algorithm"#include "cstring"#include "cstdio"using namespace std;int a[1000055],b[10005],nextt[10005];void getnext(int m){ int i=0,j=-1; nextt[0]=-1; w...原创 2018-08-17 11:26:10 · 3362 阅读 · 0 评论 -
HDU - 1358 Period 【KMP求字符串前缀是否为周期串】
KMP中next[ ]数组有一个性质:若一个字符串s[ ]为循环串时(例如abcabcabc),那么它的next[ ]数组满足下列性质:1.len%(len-p[len])==0 2.len/(len-p[len]) 就是该字符串的循环次数 //注意 该题目中若len/(len-p[len])==1,则非循环串,不可取for(i=2;i<=n;i++){ i...原创 2018-08-20 10:25:06 · 3610 阅读 · 0 评论 -
HDU - 1686 Oulipo [KMP字符串模板
#include "iostream"#include "algorithm"#include "cstring"#include "cstdio"using namespace std;string a,b;int nextt[10005];void getnext(int m){ int i=0,j=-1; nextt[0]=-1; while(i&...原创 2018-08-17 20:08:57 · 3388 阅读 · 0 评论 -
HDU - 2087 剪花布条[KMP字符串模板
例子输入AAAAAAAA输出3#include "iostream"#include "algorithm"#include "cstring"#include "cstdio"#include "iomanip"using namespace std;string a,b;int nextt[10005];void getnext(){ in...原创 2018-08-17 20:19:28 · 3411 阅读 · 0 评论 -
POJ - 2752
题目链接 poj.org/problem?id=2752n求s中存在多少字串,既是s的前缀 又是s的后缀,输出这些字串的长度while(l!=0){ sum[k++]=nextt[l]; l=nextt[l];}for(int i=k-2;i>=0;i--){ printf("%d ",sum[i]);}printf("%d\n",s.lengt...原创 2018-08-20 15:20:15 · 3524 阅读 · 0 评论 -
FZU-2275 Game 【KMP
题解:求B是否是A的字串或者反子串 一直有一种情况没有考虑到:如果字符串B一开始为0,那么应该是Alice胜 代码:#include "iostream"#include "algorithm"#include "cstring"#include "cstdio"#define maxn 100005using namespace std;char a...原创 2018-08-21 15:10:55 · 3360 阅读 · 0 评论 -
HDU-3068 【manacher模板题
#include "iostream"#include "algorithm"#include "cstring"#define maxn 100050using namespace std;char s[maxn],ch[maxn<<1];int p[maxn<<1];void init(){ int i,l; ch[0]='@'; ...原创 2018-08-24 22:06:04 · 4369 阅读 · 0 评论