
AC自动机
Amber_lylovely
这个作者很懒,什么都没留下…
展开
-
AC自动机模版
注意:一个模式串可以被计算多次。 分析:每个节点记录fail树上到根的路径和。代码:#include <iostream>#include <cstdio>#include <cmath>#include <cstring>#include <queue>const int maxn=1e6+7;using namespace std;int n,cnt;char s[maxn];str原创 2018-05-08 19:56:30 · 193 阅读 · 0 评论 -
CF963D Frequency of String AC自动机
题目大意:给你一个字符串sss,有nnn个询问,每次询问包含kik_iki和mim_imi。每个询问找到一个长度最小的字符串ttt,满足ttt是sss的子串,且mim_imi在ttt中出现至少kik_iki次。保证mim_imi不同。∣s∣&lt;=105|s|&lt;=10^5∣s∣<=105n&lt;=105n&lt;=10^5n<...原创 2018-09-18 14:21:43 · 328 阅读 · 0 评论 -
bzoj 4327: JSOI2012 玄武密码 AC自动机
题目大意:给你一个长度为nnn的模板串。qqq个询问,每个询问给一个长度为mmm的字符串,求最长的前缀能在模板串中匹配。n≤107,q≤105,m≤100n≤10^7,q≤10^5,m≤100n≤107,q≤105,m≤100。分析:对每一个串来匹配模板串是O(nq)O(nq)O(nq)的,显然不可行。考虑用模板串来匹配询问串。对所有询问串建AC自动机,然后把模板串拿上去跑。每走到一个点...原创 2018-12-18 20:51:32 · 207 阅读 · 0 评论 -
洛谷 P3311 [SDOI2014]数数 AC自动机+dp
题目描述我们称一个正整数N是幸运数,当且仅当它的十进制表示中不包含数字串集合S中任意一个元素作为其子串。例如当S=(22,333,0233)时,233是幸运数,2333、20233、3223不是幸运数。 给定N和S,计算不大于N的幸运数个数。输入输出格式输入格式:输入的第一行包含整数N。 接下来一行一个整数M,表示S中元素的数量。 接下来M行,每行一个数字串,表示S中的一个元素。输出格式...原创 2019-03-26 17:02:23 · 303 阅读 · 0 评论