KMP
拔光祖国小草
存放一下做的题。
展开
-
BZOJ 3670(KMP变形)
自己弱智了,看了一晚上题解没看懂,可能脑子糊涂了吧。 先在处理next[]的时候处理num[],此时的含义表示失配多少次能到达-1,(也就是有多少相同的前后缀,只是有前后缀是重叠的), 那么再跑一次next[],这里就往回跑j = next[j],直到前缀长度S*2 <= i,此时的num[]即是要求的num。#include <iostream>#include <cstring>#in原创 2017-11-15 19:42:54 · 210 阅读 · 0 评论 -
KMP再学习之模板
char s[maxn];char p[maxn];int NEXT[maxn];void getNext(){ int m = (int)strlen(s); NEXT[0] = -1; int k = -1; for(int i=1; i<m; i++){ while(k != -1 && s[k+1] != s[i]...原创 2018-03-14 21:42:38 · 153 阅读 · 0 评论