AC自动机
Dan__ge
Today is difficult,tomorrow is more difficult,but the day after is beautiful.
展开
-
HDU 2222 AC自动机模版题
点击打开链接 题意:问前面给的所有串在最后一个串出现的次数 思路:这道题是AC自动机入门必做的题,所以没什么好说的,是个模版题,推荐一个大神写的算法详解,不懂得可以看一看,反正我是看他的稍稍懂了点#include #include #include #include #include using namespace std; typedef long long ll; const原创 2016-03-29 16:49:30 · 788 阅读 · 0 评论 -
HDU 2896 AC自动机模版题
点击打开链接 题意:给了病毒编号,又给了网站,问哪些网站中了病毒,并将中的病毒编号输出,最后输出共有多少网站中病毒 思路:AC自动机模版题,将结构体里的num记为病毒编号就行了,我的代码如果将N设为128就会超内存,但是可见的ASCII只有32到127,不用计算空格,94就可以了#include #include #include #include #include using na原创 2016-03-29 20:08:05 · 649 阅读 · 0 评论 -
HDU 3065 AC自动机模版题
点击打开链接 题意:中文题不解释了 思路:用AC自动机,套模版而已,注意记录就行,纯套模版,真心没什么好说的#include #include #include #include #include using namespace std; typedef long long ll; const int inf=0x3f3f3f3f; const int maxn=5000010; c原创 2016-03-29 20:38:10 · 645 阅读 · 0 评论 -
ZOJ 3228 AC自动机
点击打开链接 题意:给定模式串,问下面的串最多出现多少次,0代表可以重叠,1代表不能重叠 思路:正常的0可以用模版直接实现,1的可以再写一个查询的,不能重叠,尽量先取前面,结果是最优的,所以我就记录这个串上一次出现的位置,然后在走了串这么长的长度才可以在+1.#include #include #include struct node{ node *fail; node原创 2016-03-31 21:01:00 · 645 阅读 · 0 评论 -
POJ 1204 AC自动机
点击打开链接 题意:给个L*C的字符串矩阵,W个询问,对每个询问输出这个串第一次出现的位置及方向,共有8个方向,用A~H表示 思路:用AC自动机进行快速匹配,细节处理特别多,不看题解的话应该会WA很多次,还有一个处理的非常巧妙地地方,就是我们要输出第一次出现的位置,而AC自动机不能回溯,所以将串反着构造进字典树里,真是神犇,然后方向设置时也反着就可以了#include #include #原创 2016-05-16 20:22:08 · 4785 阅读 · 0 评论 -
HDU 5384 AC自动机模版
点击打开链接 题意:n个A,m个B,对于每个A,输出所有B在A中出现的次数 思路:和AC自动机模版题2222相同,唯一的区别就是n个A不能开二维,自己处理一下就OK了#include #include #include #include #include using namespace std; typedef long long ll; const int inf=0x3f3f3f原创 2016-07-09 15:07:08 · 1312 阅读 · 0 评论 -
UVALive 4670 AC自动机
点击打开链接 题意:给许多字符串和一个文本串,问你出现最多的次数及哪些字符串出现了这些次 思路:直接套模版,然后注意一下有可能有相同的字符串,在AC自动机中后面的会覆盖前面的,那么用map处理一下即可#include #include #include #include #include #include #include using namespace std; typedef原创 2016-09-03 13:57:42 · 297 阅读 · 0 评论 -
UVA 11019 AC自动机
点击打开链接 题意:给一个n*m的文本矩阵,然后给一个x*y的矩阵,问文本矩阵中有多少个x*y的矩阵 思路:先把x*y的矩阵构造AC自动机,然后一行一行的匹配n*m的矩阵,每次匹配成功,则以这行成功的开头应该是哪个位置,然后将位置的值+1,最后统计所有的位置的值等于x的所有的点就是成功的匹配点#include #include #include #include #include #原创 2016-09-03 16:05:33 · 323 阅读 · 0 评论 -
HDU 5880 AC自动机
点击打开链接 题意:给一些敏感词,然后下面的串只要出现敏感词就输出* 思路:大家有没有kuangbin的hdu2222的模版,如果有拿过来改了不到十行的代码就过了,比网络赛的时候因为过的人比较少,都没有勇气尝试这么简单的写法,哎~~,就是在每一个串的结尾标记一下最长的那个串的长度,然后输出的时候直接判断标记就行了 PS:kuangbin大神的模版真心给力而且好改#include #inc原创 2016-09-18 20:16:09 · 668 阅读 · 0 评论