kmp
verdin黄大锤
afo啦!
展开
-
poj 2406 Power Strings
题目:Power Strings思路:先用kmp求出nxt数组,当n%(n-nxt[n])==0时,n/(n-nxt[n])就是答案。代码:#include<cstring>#include<cstdio>#include<iostream>#include<string>using namespace std;#define...原创 2018-08-14 19:54:58 · 171 阅读 · 0 评论 -
模板 kmp字符串匹配
题目:KMP字符串匹配 资料:SYC大佬的博客 思路:nxt[i] :字符串0~i的最长相等的前缀后缀长减1,也就是最长相等前缀后缀中的前缀的结束位置。比如从i开始查找到j处时不匹配,nxt[j]=2,也就是说A段和B段完全相等,因为A是X串的前缀,那么B也是X串的前缀,可以直接从B段开始匹配: i j ↓ ...原创 2018-03-23 10:29:48 · 613 阅读 · 0 评论 -
洛谷3435 POI2006 OKR-Periods of Words
题目:OKR-Periods of Words 思路:用kmp的做法先求出这个字符串的nxt[](最长相同前缀后缀)。假设有这样一个字符串,nxt=2,这个字符串的最大周期就是6,最小周期就是5: XX XX YY YY YY XX XX | 最大周期=6 || 最小周期=5 | nxt=2 |从最小周期来看,我们可以看出最小周期...原创 2018-03-23 16:08:24 · 355 阅读 · 0 评论 -
洛谷2375 NOI2014 动物园
题目:动物园 思路:kmp。就是把nxt求出来后再顺着nxt往前匹配,直到满足条件为止。要设一个数组记录nxt为i时的公共前后缀数量。注意查询时,要重复利用j,不然会TLE成50'。 代码:50'代码:#include<bits/stdc++.h>using namespace std;#define md ((int)(1e9)+7)...原创 2017-12-26 13:07:34 · 409 阅读 · 0 评论 -
CF 126B Password
题目:Password思路: 来自mjy0724—— 代码:#include<bits/stdc++.h>using namespace std;#define maxn 1000000int n;char a[maxn+5];int nxt[maxn+5];int vis[maxn+5];int main() { scanf("%s",...原创 2018-08-12 19:29:22 · 390 阅读 · 0 评论 -
洛谷 P3375 【模板】KMP字符串匹配 (重写)
题目:KMP字符串匹配思路:加注释重写~代码:#include&lt;bits/stdc++.h&gt;using namespace std;#define maxn 1000000char a[maxn+5],b[maxn+5]; //aΪÎı¾´®£¬bΪģʽ´® int n,m; //a¡¢bµÄ³¤¶È int nxt[maxn+5]={...原创 2018-08-12 22:08:39 · 321 阅读 · 0 评论 -
poj 2752 Seek the Name, Seek the Fame
题目:Seek the Name, Seek the Fame思路: 主要是要理解next的含义。 粘一下大佬的思路代码:#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;vector&gt;using namespace std;#define maxn 400000int n;char a[ma...原创 2018-08-12 23:08:02 · 125 阅读 · 0 评论