
字符串---KMP
文章平均质量分 90
forezxl
水君一枚
展开
-
KMP算法详解
KMP算法详解原创 2017-08-01 09:26:21 · 491 阅读 · 0 评论 -
洛谷P3375 【模板】KMP字符串匹配
KMP题目传送门因为某些原因,只好先搞KMP喽!代码:#include<cstdio>#include<cstring>#include<algorithm>using namespace std;char s1[1000005],s2[1005];int nxt[1005];int main(){ scanf("%s%s",s1,s2); int n=strlen(s1原创 2017-07-30 21:51:16 · 348 阅读 · 0 评论 -
BZOJ3670: [Noi2014]动物园(洛谷P2375)
KMPBZOJ题目传送门 洛谷题目传送门感觉洛谷标签高了点啊。。。第一遍处理出next数组,另记一个数组干脆就叫 num表示题目中的num的可重叠版(就是前后缀可重叠的数量)。再类似求next一样跳一遍,加上限制后统计答案就好了。我之前从0开始的KMP简直有毒代码:#include<cstdio>#include<cstring>#includ...原创 2018-03-05 21:03:26 · 411 阅读 · 0 评论 -
BZOJ4974: [Lydsy1708月赛]字符串大师
KMP题目传送门一个字符串的最小循环节长度为n−next[n]n-next[n]n−next[n]。那么这道题相当于给我们next[i]next[i]next[i],要求原串。当构造nextnextnext数组时,我们是跳到与当前字符一样的地方并更新nextnextnext,否则nextnextnext是不会变的。那么现在就相当于在原串种有一些相等与不相等的限制条件,对于相等的条件直接取,不...原创 2018-10-17 18:25:14 · 207 阅读 · 0 评论 -
BZOJ1511: [POI2006]OKR-Periods of Words(洛谷P3435)
KMPBZOJ题目传送门洛谷题目传送门一个串的最小循环节为i−nxt[i]i-nxt[i]i−nxt[i],而如果要求最大循环节就是把nxt[i]nxt[i]nxt[i]跳到刚好不是000为止。求出nxtnxtnxt后我们可以扫一遍把nxt[i]nxt[i]nxt[i]赋成nxt[nxt[i]]nxt[nxt[i]]nxt[nxt[i]]。之后i−nxt[i]i-nxt[i]i−nxt[i]...原创 2018-10-25 13:34:10 · 383 阅读 · 0 评论