码迷,mamicode.com
首页 >  
搜索关键字:模式串    ( 684个结果
经典算法题每日演练——第八题 AC自动机
原文:经典算法题每日演练——第八题 AC自动机 上一篇我们说了单模式匹配算法KMP,现在我们有需求了,我要检查一篇文章中是否有某些敏感词,这其实就是多模式匹配的问题。 当然你也可以用KMP算法求出,那么它的时间复杂度为O(c*(m+n)),c:为模式串的个数。m:为模式串的长度,n:为正文的长度,那...
分类:编程语言   时间:2015-01-16 12:48:17    阅读次数:374
KMP算法
Knuth-Morris-Pratt算法(简称KMP),以三个发明者命名,起头的那个K就是著名科学家Donald Knuth一、什么是KMP算法假设现在文本串S匹配到 i 位置,模式串P匹配到 j 位置如果j = -1,或者当前字符匹配成功(即S[i] == P[j]),都令i++,j++,继续匹配...
分类:编程语言   时间:2015-01-15 17:41:34    阅读次数:266
poj 1204 Word Puzzles 静态trie数解决多模式串匹配问题
题意: 给一个二维字符数组和w个模式串,求这w个模式串在二维字符数组的位置。 分析: 静态trie树。 代码: //poj 1204 //sep9 #include using namespace std; const int maxN=1024; const int maxM=270*maxN; char str[maxN][maxN]; char s[maxN]; int vis[...
分类:其他好文   时间:2015-01-15 14:23:54    阅读次数:141
BZOJ 2553 BeiJing2011 禁忌 AC自动机+矩阵乘法
题目大意:给定n个模式串,定义一个字符串的伤害为所有子串的划分中最多包含的模式串数量,求长度为len的字符串的伤害期望值 小五prpr,恋恋prpr,大小姐prpr 首先建立AC自动机 令f[i][j]表示长度为i的字符串在AC自动机上的第j个节点的伤害期望值 如果要走到某个节点是危险节点或者fail指针指向危险节点,就ans++,然后回到根节点 这样构造出来的矩阵做快速幂= = 这么做都...
分类:其他好文   时间:2015-01-13 09:02:00    阅读次数:205
AC自动机
关于自动机,其实可以最简单的理解为,对于一个给定的初始状态,算法可以自动进行递归得出最终匹配或者不匹配两种情况。AC自动机试自动机的一种(Aho-Corasick automation),该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。所谓多模匹配,指的是同时匹配多个模式串,我们通.....
分类:其他好文   时间:2015-01-08 22:41:10    阅读次数:244
zoj 3228 - Searching the String
题目:给你一个长目标串str,和一些模式串,求每个串出现的次数。模式串有可覆盖和不可覆盖两种。 分析:字符串,多串匹配,AC自动机。由于数据有可能不允许相交,所以记录上一个的结束位置。             题目的数据比较猥琐,可能相同,采用一个 Fath域记录第一次出现的 id,计算一次就可以了。 说明:注意数据有相同的串;该题可以使用 RK算法+二分。 #include #incl...
分类:其他好文   时间:2014-12-23 14:01:51    阅读次数:210
武汉科技大学ACM:1007: 文本编辑器
Problem DescriptionYB打算写一个功能强大的文本编辑器,并取一个炫酷拉风,高端优雅的名字,比如“YB牌文本编辑器”之类的。既然功能强大,那肯定得有个查找功能吧。但是他在完成这个功能的时候遇到一点小问题。现在来请求你的帮助。给你一个文本串s和一个模式串t,你需要写一个程序来查找t在s...
分类:其他好文   时间:2014-12-19 20:40:36    阅读次数:206
BZOJ 2754 SCOI2012 喵星球上的点名 fail树+set启发式合并
题目大意:给定n个目标串和m个模式串,问这m个模式串每个在多少个目标串中出现过,以及n个目标串每个以最多多少个模式串为子串 我错了……就算用fail树+set启发式合并也优化不到O(nlog^2n)……这题的数据范围相当无解啊 首先将所有名字和点名的字符串全都插进AC自动机 将每个点上开一个set记录这个点是哪些喵星人的名字的前缀 然后建立fail树 沿着fail树从下到上启发式合并 每...
分类:其他好文   时间:2014-12-09 09:21:35    阅读次数:286
BZOJ 1030 JSOI2007 文本生成器 AC自动机+DP
题目大意:给定n个模式串,求长度为m的至少含有一个模式串的字符串共有多少种 照例,令f[i][j]表示长度为i的字符串与AC自动机上的第j个点匹配的方案数 直接DP很难,我们考虑补集法,即用26^m减去不含任何模式串的字符串的数量 后者就是经典的AC自动机DP模型啦~~ #include #include #include #include #define MOD 10007 us...
分类:Web程序   时间:2014-12-08 13:59:56    阅读次数:208
KMP再探究:next数组的妙用
我们来看一道题目:hihoCoder #1015 : KMP算法 输入 第一行一个整数N,表示测试数据组数。 接下来的N*2行,每两行表示一个测试数据。在每一个测试数据中,第一行为模式串,由不超过10^4个大写字母组成,第二行为原串,由不超过10^6个大写字母组成。 其中N #include usi...
分类:编程语言   时间:2014-12-04 13:50:52    阅读次数:178
684条   上一页 1 ... 56 57 58 59 60 ... 69 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!