AC自动机
文章平均质量分 62
BraketBN
这个作者很懒,什么都没留下…
展开
-
【HDU2825】Wireless Password【AC自动机】【状压DP】
感觉挺不错的题。dp[i][j][mask] 表示长度为i的字符串,走到AC自动机上第j个节点时,状态为mask的方案数。将每个mask选择了的字符串的个数预处理出来,统计答案时只需要将个数不小于k的贡献加上。#include #include #include #define cls(a, x) memset(a, x, sizeof(a))usi原创 2016-02-10 22:04:10 · 1221 阅读 · 0 评论 -
【Uva11468】Substring【AC自动机】【概率DP】
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=31655大白上的题。AC自动机经典题型。论如何忘记写getfail()。/* Footprints In The Blood Soaked Snow */#include #include #include using namesp原创 2016-03-18 15:08:00 · 380 阅读 · 0 评论 -
【BZOJ1030】[JSOI2007]文本生成器【AC自动机】【计数DP】
http://www.lydsy.com/JudgeOnline/problem.php?id=1030AC自动机经典题型,数据不大,不用矩阵快速幂优化。/* Footprints In The Blood Soaked Snow */#include #include #define cls(a, x) memset(a, x, sizeof(a))using namesp原创 2016-03-19 14:36:53 · 584 阅读 · 0 评论 -
【Uva11019】Matrix Matcher【AC自动机】【二维字符串匹配】
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=33057二维字符串匹配...大白上的题。把匹配串的每一行当成一个串insert到AC自动机里,然后用模板串的每一行find。如果匹配成功,那么在这个矩阵的左上角加一。最后扫一边矩阵,如果有个地方的权值等于x,那么说明这是个匹配位置。/* Foot原创 2016-03-19 16:17:21 · 565 阅读 · 0 评论 -
【BZOJ3942】[Usaco2015 Feb]Censoring【AC自动机 / KMP】
【题目链接】记录一个当前串长为i时,在AC自动机上的哪个节点。找到匹配串时,直接O(1)跳到那个节点就行了。/* Pigonometry */#include #include #include using namespace std;const int maxn = 1000005, maxq = maxn;int n, pos[maxn], q[maxq];char原创 2016-04-28 23:03:48 · 669 阅读 · 0 评论 -
【BZOJ3940】[Usaco2015 Feb]Censoring【AC自动机 / KMP】
【题目链接】【BZOJ3942题解】的加强版,但是没有什么区别。/* Pigonometry */#include #include #include using namespace std;const int maxn = 1000005, maxq = maxn;int n, pos[maxn], q[maxq];char s[maxn], str[maxn], a原创 2016-04-28 23:05:31 · 573 阅读 · 0 评论 -
【总结】AC自动机
在应用中,AC自动机大多数是与DP结合起来用的,当然也有其他类型的应用。最经典的应用之一:给出一些串,这些串是“病毒串”,问有多少种长度为n且不包含病毒串(或者至少出现一次)的字符串。这类问题中,病毒串长度一般很小,总长度一般不超过50,而n却很大,一般在10^9以上。如果只有一个病毒串,那么我们只需要KMP就好了,比如【BZOJ1009: [HNOI200原创 2016-04-19 10:08:20 · 464 阅读 · 0 评论 -
【CodeChef-LYRC】Music & Lyrics【AC自动机】
【题目链接】给出W个模板串和N个匹配串,问每个模板串在所有匹配串中一共出现了多少次。先把所有模板串放进AC自动机,然后用每个匹配串在AC自动机上跑,走过的节点权值++。最后在fail树上做个前缀和,查询每个模板串的结尾节点的权值就好了。一开始求前缀和写了深搜,但是看了策爷代码,发现可以利用求fail时的广搜队列来跑前缀和,orz%%%。模板串和匹配串长度原创 2016-04-21 07:49:19 · 717 阅读 · 0 评论 -
【HDU4787】GRE Words Revenge【AC自动机】【AC自动机合并】
【题目链接】调了4个小时多.../* Forgive me Not */#include #include #include using namespace std;const int maxn = 100005, maxl = 5000005, maxq = maxn;int n, q[maxq];char str[maxl], tmp[maxl];struc原创 2016-06-12 22:28:52 · 789 阅读 · 0 评论