计算机_算法_字符串
franztao
不想说话
展开
-
KM算法 详解+模板
先说KM算法求二分图的最佳匹配思想,再详讲KM的实现。【KM算法求二分图的最佳匹配思想】对于具有二部划分( V1, V2 )的加权完全二分图,其中 V1= { x1, x2, x3, ... , xn }, V2= { y1, y2, y3, ... , yn },边具有权值 Wi,j 。该带权二分图中一个总权值最大的完美匹配,称之为最佳匹配。 记 L(x) 表转载 2015-03-12 16:30:09 · 483 阅读 · 0 评论 -
Rabin-Karp算法
字符串匹配(String matching)问题的形式定义: 假设文本(Text)是一个长度为n的数组T[1…n], 模式(Pattern)是一个长度为m ≤ n.的数组P[1..m];. 又假设P和T中的元素都属于有限字母表Σ 中的字符。 P和T常称为字符串。如果0 ≤ s ≤ n – m 且T[s+1..s+m]=P[1…m], 则说P在T中出现且位移为s,此时成s为一个有原创 2015-03-12 16:45:44 · 454 阅读 · 0 评论 -
后缀数组_模板
倍增算法#define maxn 1000001int wa[maxn],wb[maxn],wv[maxn],wws[maxn];int cmp(int *r,int a,int b,int l){return r[a]==r[b]&&r[a+l]==r[b+l];}void da(int *r,int *sa,int n,int m){ int i,j,p,*x=w原创 2015-03-13 10:09:38 · 490 阅读 · 0 评论 -
Aho-Corasick算法
1、概述Aho-Corasick自动机算法(简称AC自动机)1975年产生于贝尔实验室。该算法应用有限自动机巧妙地将字符比较转化为了状态转移。此算法有两个特点,一个是扫描文本时完全不需要回溯,另一个是时间复杂度为O(n),时间复杂度与关键字的数目和长度无关。好了,我们先看下最原始的多模式匹配算法:主串T,n=strlen(T)。模式串Pi mi = strlen转载 2015-03-12 16:47:45 · 515 阅读 · 0 评论