
字符串
文章平均质量分 65
Exchan
A AC a day,keep the doctor away!
展开
-
AC自动机
首先简要介绍一下AC自动机:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有模式树(字典树)Trie和KMP模式匹配算法的基础知识。AC自动机算法分为3步:构造一棵Trie树,构造失败指针和模式匹配过程。转载 2017-06-01 19:34:11 · 190 阅读 · 0 评论 -
AC自动机入门 - HDU3065 病毒侵袭持续中
AC自动机的模板题。HDU3065 病毒侵袭持续中题意:给定n个字符串和一段文本,统计每个字符串在文本中分别出现的次数。注意点:这里输入单词的时候给每个单词分布一个id,然后在统计次数的时候根据id增加数组的次数就可以了。(这里用kuangbin大神的模板)code:#include #include #include #include using namespa原创 2017-06-01 22:24:12 · 330 阅读 · 0 评论 -
字符串匹配的KMP算法和Boyer-Moore算法
字符串匹配的KMP算法和Boyer-Moore算法转自 阮一峰字符串匹配的KMP算法字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以转载 2016-07-24 18:49:46 · 853 阅读 · 1 评论 -
Trie树详解及其应用
一、知识简介 字典树(Trie)可以保存一些字符串->值的对应关系。基本上,它跟 Java 的 HashMap 功能相同,都是 key-value 映射,只不过 Trie 的 key 只能是字符串。 Trie 的强大之处就在于它的时间复杂度。它的插入和查询时间复杂度都为 O(k) ,其中 k 为 key 的长度,与 Trie 中保存了多少个元素无关。Hash 表号称是 O转载 2017-04-21 13:25:17 · 318 阅读 · 0 评论 -
KMP经典习题
KMP 算法经典题目:pku2406 Power Stringshttp://162.105.81.212/JudgeOnline/problem?id=2406pku1961 Periodhttp://162.105.81.212/JudgeOnline/problem?id=1961 这个题目是1961的升级版,考察队next数组的应用,附上代码:#incl原创 2017-05-05 10:59:31 · 2129 阅读 · 0 评论 -
KMP求最小覆盖子矩阵 - poj2185
Milking Grid题意:在字符矩阵中找出一个最小子矩阵,使其多次复制所得的矩阵包含原矩阵。数据范围:1 思路1:先用KMP的next函数求出每行的最小循环子串的长度L,那么L,2L,3L,...都可以作为该行的循环子串。此外,还可以存在像AAAABAAA的情况。设m为mL至于如何获取所求最小矩阵的宽度,这里采用http://poj.org/show原创 2017-10-11 22:00:36 · 447 阅读 · 0 评论 -
UvaL4513-Stammering Aliens | LCP最长公共前缀+Hash
题意:给出n( n 求出最长的子串,满足在n个字符串当中出现在一半以上的字符串上, 如果有多个这样的子串,按字典序输出题解:先吐槽一波,好气哦,cmp函数+l写成了+1(follow me: yi),然后就找了一个小时的bug这个题是要求构造一个串,跟一半的串有最长公共前缀,所以就将所有的串连起来当作母串处理然后求出最长公共前缀,因为是要求字典序,所以求后缀数组hi原创 2017-10-25 12:04:06 · 281 阅读 · 0 评论