kmp
peter_819
这个作者很懒,什么都没留下…
展开
-
【各种算法】【kmp】复习
kmp算法:一种字符串匹配算法,可以处理两个串得匹配问题,求一个串在另一个串中出现次数,判断a是b的字串等等。 算法来源:考虑对于a,b串暴力匹配,枚举b串出现的位置之后,将位置后面b串长度个位置挨个匹配,这种算法将会多次遍历b串,对于很多情况,出现位置只向后移动一次并不能与b串匹配。 考虑我们先求出b串的前i位串的最长公共前后缀(border)。 有这样的性质:对于a串和b串匹配到一点失配,原创 2017-04-07 22:17:17 · 489 阅读 · 0 评论 -
【KMP】【poj3167】【bzoj1729】Cow Patterns
题意 给定一个顺序序列表示奶牛的排列顺序,定义串a=b当且仅当a的每位的排名=b的每位的排名。题解 预处理出前i位中j出现的次数,由于编号很小,处理出类似前缀和,暴力查询排名即可。已知排名之后就直接kmp。代码#include <iostream>#include <cstdio>#include <cstring>#define MAXN 100001using namespac原创 2017-03-25 21:40:25 · 589 阅读 · 0 评论 -
【kmp】【poj2406】Power Strings
题意 求给定串的最小循环节个数题解 最小循环节长度=len-border border:最长公共前后缀 kmp代码#include <iostream>#include <cstdio>#include <cstring>#define MAXN 1000001using namespace std;int nxt[MAXN];char s[MAXN];int main(原创 2017-03-25 21:47:25 · 219 阅读 · 0 评论