
数据结构——AC自动机
倚剑笑紅尘
教练,我想学kaldi!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
AC自动机
AC自动机 直接学AC自动机比较难理解,强烈建议先学完KMP和字典树并进行一定的练习后,对于失配指针和字典树构造有一定理解后再来学AC自动机的内容。有关AC自动机的详细介绍可见刘汝佳的《算法竞赛入门经典训练指南》P214. 给你一个字典(包含n个不重复的单词),然后给你一串连续的字符串文本(长为len),问你该文本里面的哪些位置正好出现了字典中的某一个或某几个单词?输出这些位转载 2017-07-29 14:27:41 · 293 阅读 · 0 评论 -
HDU 2296 Ring(AC自动机+DP)
HDU 2296 Ring(AC自动机+DP) http://acm.hdu.edu.cn/showproblem.php?pid=2296 题意: 给你M个单词构成一个词典,每个单词有一个权值(单词出现多次算多个权值),现在要你构造一个不超过长度N的字符串,使得该字符串权值最大。如果出现多个答案,输出最短的,如果依然有多解,输出字典序最小的。 分析: 本原创 2017-09-02 20:19:25 · 214 阅读 · 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个单词并已给出. 分析: 该题要用刘汝佳:训练指南原创 2017-09-02 15:29:30 · 246 阅读 · 0 评论 -
POJ 1625 Censored!(AC自动机+DP)
POJ 1625 Censored!(AC自动机+DP) http://poj.org/problem?id=1625 题意: 给你由特定N个字符组成的P个模板和长度M,问你由这特定N个字符组成的长为M的文本串不包含任意一个模板有多少种情况?M 分析: 由于M http://blog.youkuaiyun.com/u013480600/article/details原创 2017-09-02 11:27:21 · 316 阅读 · 0 评论 -
POJ 2778 DNA Sequence(AC自动机+矩阵幂DP)
POJ 2778 DNA Sequence(AC自动机+矩阵幂DP) http://poj.org/problem?id=2778 题意: 所有串只由A,C,T,G字符构成。给你m个模板串,然后给你一个n,问你长为n的由ACTG字符构成的所有字符串中有多少个是不包含任意一个模板串的?其中n很大。 分析:本题类似于UVA11468: http://blog.youkuaiyun.com原创 2017-09-01 17:40:37 · 275 阅读 · 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原创 2017-08-31 20:41:12 · 313 阅读 · 0 评论 -
UVA 11468 Substring(AC自动机+概率DP)
UVA 11468 Substring(AC自动机+概率DP) 题目链接:点击打开链接 题意: 给出一个单词字典,然后给出这个字典的所有字符以及其相应的出现概率,现在要随机生成一个长度为L的字符串s,问你s中没有字典中的任意一个单词的概率是多少? 分析:详见刘汝佳:训练指南P218 构造完改造后的AC自动机后,每随机生成一个字母,相当于在AC自动机中随转载 2017-07-29 22:26:10 · 261 阅读 · 0 评论 -
HDU 3065 病毒侵袭持续中(AC自动机)
HDU 3065 病毒侵袭持续中(AC自动机) 题目链接:hdu3065 题意: 给你多个不同的模板和一个文本串.问你这个文本串中各个模板都分别出现了多少次? 分析: 由于模板不同,所以直接建立AC自动机.val表示单词节点的编号. 当用文本T匹配AC自动机的时候,发现一个单词节点i就把对应的cnt[val[i]]++即可.最后按顺序原创 2017-07-29 19:07:03 · 258 阅读 · 0 评论 -
HDU 2896 病毒侵袭(AC自动机)
HDU 2896 病毒侵袭(AC自动机) 题目链接:hdu2896 题意: 给你一组模板,然后在给你多个文本,要你去匹配文本,看看每个文本中都出现了哪些模板然后输出即可. 分析: 本题的模板不会重复,题目中已说明. 不过本题的字符是所有ASCII码可见字符,所以sigma_size=128. 结构体中的val对每个模板原创 2017-07-29 17:19:57 · 287 阅读 · 0 评论 -
HDU 2222 Keywords Search(AC自动机)
题目链接:hdu2222 参考博客:点击打开链接 题意: 给你多个模板组成的字典和一个文本,问你文本中出现了多少个模板。 分析: 用模板建立AC自动机,然后初始化一个bool vis[]数组,用于标记每个模板,然后用文本串匹配AC自动机,每当扫描到一个单词节点就令vis[]=true.最后在在外面扫描一遍vis数组即可. 即一开始队每个模板的最后一个原创 2017-07-29 16:48:18 · 214 阅读 · 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构成). 分析: 本题初看确实不知道怎么做,和之前做的题目都不一样原创 2017-09-03 00:19:31 · 231 阅读 · 0 评论