【ACM 算法】
文章平均质量分 78
paidream
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【KMP】
KMP算法是一种改进的字符串匹配算法,由D.E.Knuth与V.R.Pratt和J.H.Morris同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称KMP算法)。在介绍KMP算法之前,先介绍一下BF算法。一.BF算法 BF算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S的第二个字符和转载 2013-11-08 12:51:40 · 620 阅读 · 0 评论 -
【AC自动机】
AC自动机简介: 首先简要介绍一下AC自动机:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有字典树Trie和KMP模式匹配算法的基础知识。KMP算法是单模式串的字符匹配算法,AC自动机是多模式串的字符匹配算转载 2013-11-30 21:48:44 · 546 阅读 · 0 评论 -
【Manacher 算法 回文串】
回文串定义:“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。回文子串,顾名思义,即字符串中满足回文性质的子串。经常有一些题目围绕回文子串进行讨论,比如POJ3974最长回文,求最长回文子串的长度。朴素算法是依次以每一个字符为中心向两侧进行扩展,显然这个复杂度是O(N^2)的,关于字符串的题目常用的算法有KMP、后缀数组、AC 自动机,原创 2013-11-12 11:21:00 · 746 阅读 · 0 评论 -
【字典树 Trie】
字典树,顾名思义,就是一种对字母等字符串进行处理的一种特殊数据结构。说白了,就是二十六叉树。定义一个头指针,每次从头指针开始操作。有两种常用的操作:1.查询某个字符串的出现次数。每个节点的count置为0,直到这个字符串结束,在末尾处count++.这样,就记录了该字符串的出现次数。2.查询某个字符串特定序列出现的次数。每个节点的count初始化为0,当读入原创 2013-11-29 22:48:04 · 615 阅读 · 0 评论 -
【KMP 模板】
----------------------------一 模板----------------------------const int maxn=1111111char s[maxn];char p[maxn];int next[maxn];void getnext(char *p,int *next){ int i=0,j=-1; int len=st原创 2013-12-04 22:08:44 · 587 阅读 · 0 评论 -
【普利姆(Prime)算法】
普利姆(Prime)算法(只与顶点相关) 算法描述:普利姆算法求最小生成树时候,和边数无关,只和定点的数量相关,所以适合求稠密网的最小生成树,时间复杂度为O(n*n)。算法过程:1.将一个图的顶点分为两部分,一部分是最小生成树中的结点(A集合),另一部分是未处理的结点(B集合)。2.首先选择一个结点,将这个结点加入A中,然后,对集合A中的顶点遍历,找原创 2013-12-14 21:31:55 · 650 阅读 · 0 评论
分享