
数据结构--AC自动机
focus_best
这个作者很懒,什么都没留下…
展开
-
ZOJ 3430 Detect the Virus(AC自动机+字符串转换)
ZOJ 3430 Detect the Virus(AC自动机)http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3430题意:给你多个模板串,和一个文本串,现在问你文本串中出现了几个模板串。但是模板串和文本串都是用64位编码的。分析:由于数据都是64位编码的,所以需要先把模板串和文本串解码成ASCII字符串形式。原创 2014-04-11 21:32:12 · 1878 阅读 · 0 评论 -
ZOJ 3228 Searching the String(AC自动机)
ZOJ 3228 Searching the String(AC自动机)http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3228题意:给你N个模板串和一个文本串,问你这些模板串在文本串中最多出现了多少次.注意:模板串可以重复,且模板串有两种类型,第一种是:对于同一个模板,其前后匹配的位置可以重叠.第二种模板不能重叠.原创 2014-04-13 19:11:44 · 1476 阅读 · 0 评论 -
HDU 2457 DNA repair(AC自动机+DP)
HDU 2457 DNA repair(AC自动机+DP)http://acm.hdu.edu.cn/showproblem.php?pid=2457题意:给你N个模板串,并且给你一个文本串,现在问你这个文本串最少需要改变几个字符才能使得它不包含任何模板串.(以上字符只由A,T,G,C构成).分析:本题初看确实不知道怎么做,和之前做的题目都不一样. 现在我们令dp[i]原创 2014-04-13 14:34:15 · 1344 阅读 · 0 评论 -
HDU 2296 Ring(AC自动机+DP)
HDU 2296 Ring(AC自动机+DP)http://acm.hdu.edu.cn/showproblem.php?pid=2296题意:给你M个单词构成一个词典,每个单词有一个权值(单词出现多次算多个权值),现在要你构造一个不超过长度N的字符串,使得该字符串权值最大.如果出现多个答案,输出最短的,如果依然有多解,输出字典序最小的.分析:本题和之前几题类似.不过注意这题的AC自动原创 2014-04-13 12:23:43 · 1809 阅读 · 0 评论 -
HDU 2825 Wireless Password(AC自动机+状态压缩DP)
HDU 2825 Wireless Password(AC自动机+DP)http://acm.hdu.edu.cn/showproblem.php?pid=2825题意:现在要你推断一个长度==n的由小写字母构成的字符串S有多少种组成方式.其中这个S至少包含字典集合中的k个单词.字典集合中有m个单词并已给出.分析:该题要用刘汝佳:训练指南上带match的AC自动机 令d原创 2014-04-12 18:20:51 · 1257 阅读 · 0 评论 -
POJ 1625 Censored!(AC自动机+DP)
POJ 1625 Censored!(AC自动机+DP)http://poj.org/problem?id=1625题意:给你由特定N个字符组成的P个模板和长度M,问你由这特定N个字符组成的长为M的文本串不包含任意一个模板有多少种情况?M分析:由于Mhttp://blog.youkuaiyun.com/u013480600/article/details/23294375 我们原创 2014-04-12 14:07:47 · 1334 阅读 · 0 评论 -
HDU 2243 考研路茫茫——单词情结(AC自动机+矩阵幂)
HDU 2243 考研路茫茫——单词情结(AC自动机+矩阵幂)http://acm.hdu.edu.cn/showproblem.php?pid=2243题意:给你多个模板串,现在要问你长度不超过L的文本串中,至少包含一个模板串的的文本串有多少个?分析:其实本题就是POJ 2778的变形:http://blog.youkuaiyun.com/u013480600/article/details原创 2014-04-12 12:11:26 · 1311 阅读 · 1 评论 -
POJ 2778 DNA Sequence(AC自动机+矩阵幂DP)
POJ 2778 DNA Sequence(AC自动机+矩阵)http://poj.org/problem?id=2778题意:所有串只由A,C,T,G字符构成.给你m个模板串,然后给你一个n,问你长为n的由ACTG字符构成的字符串有多少个不包含任意一个模板串.其中n很大.分析:本题类似于UVA11468:http://blog.youkuaiyun.com/u013480600/articl原创 2014-04-11 19:08:52 · 1336 阅读 · 0 评论 -
HDU 3065 病毒侵袭持续中(AC自动机)
HDU 3065 病毒侵袭持续中(AC自动机)题意:给你多个不同的模板和一个文本串.问你这个文本串中各个模板都分别出现了多少次?分析:由于模板不同,所以直接建立AC自动机.val表示单词节点的编号.当用文本T匹配AC自动机的时候,发现一个单词节点i就把对应的cnt[val[i]]++即可.最后按顺序输出即可.AC代码:原创 2014-04-10 12:09:54 · 1558 阅读 · 0 评论 -
HDU 2896 病毒侵袭(AC自动机)
HDU 2896 病毒侵袭(AC自动机)题意:给你一组模板,然后在给你多个文本,要你去匹配文本,看看每个文本中都出现了哪些模板然后输出即可.分析:本题的模板不会重复,题目中已说明. 不过本题的字符是所有ASCII码可见字符,所以sigma_size=128.AC代码:原创 2014-04-10 12:08:34 · 1100 阅读 · 1 评论 -
HDU 2222 Keywords Search(AC自动机)
HDU 2222(AC自动机)题意:给你多个模板组成的字典和一个文本,问你文本中出现了多少个模板.分析: 用模板建立AC自动机,然后初始化一个bool vis[]数组,用于标记每个模板,然后用文本串匹配AC自动机,每当扫描到一个单词节点就令vis[]=true.最后在在外面扫描一遍vis数组即可.(该题应该没有重复模板,根据题意) 注意:经过测试该题有重复的原创 2014-04-10 12:07:32 · 1148 阅读 · 0 评论 -
UVA 11468 Substring(AC自动机+概率DP)
UVA 11468 Substring(AC自动机+概率)题意:给出一个单词字典,然后给出这个字典的所有字符以及其相应的出现概率,现在要随机生成一个长度为L的字符串s,问你s中没有字典中的任意一个单词的概率是多少?分析:详见刘汝佳:训练指南P218 首先我们建立AC自动机,然后从0号节点开始走,那么不出现字典的单词就是要求我们不能走单词节点,只能走非单词节点。且要使用优化后原创 2014-04-09 20:14:05 · 1880 阅读 · 0 评论 -
UVA 1449 Dominating Patterns(AC自动机)
UVA 1449 Dominating Patterns(AC自动机)http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=36265题意:给你n个单词,还有一个长文本s,现在要你输出在文本s中出现次数最多的单词。分析: 直接建立AC自动机,并且val值是当前插入单词的编号。建立AC自动机后,用s文本串去原创 2014-04-09 18:37:29 · 1292 阅读 · 0 评论 -
HDU 3341 Lost's revenge(AC自动机+DP)
HDU 3341 Lost's revenge(AC自动机+DP)http://acm.hdu.edu.cn/showproblem.php?pid=3341题意:给你多个模板串,然后在给你一个文本串.所有串均只由A,C,G,T,4个字母构成,问你文本串的字符重新排序后最多能有多少个模板串.分析:令dp[i][a1][a2][a3][a4]=x表示当前在i点,且用了a1个A,a2个C,原创 2014-04-14 00:28:58 · 1283 阅读 · 0 评论 -
AC自动机
AC自动机 直接学AC自动机比较难理解,强烈建议先学完KMP和字典树并进行一定的练习后,对于失配指针和字典树构造有一定理解后再来学AC自动机的内容。有关AC自动机的详细介绍可见刘汝佳的《算法竞赛入门经典训练指南》P214.给你一个字典(包含n个不重复的单词),然后给你一串连续的字符串文本(长为len),问你该文本里面的哪些位置正好出现了字典中的某一个或某几个单词?输出这些位原创 2015-03-29 22:09:50 · 3232 阅读 · 0 评论