AC自动机
Spy97
这个作者很懒,什么都没留下…
展开
-
Codeforces 1252D Find String in a Grid
题意给一个矩形字符串,题问很多串,问每个匹配的次数匹配的定义是,向右走然后向下走,经过的字符接在一起和提问串一样比如匹配了 ′ABC′'ABC'′ABC′ , 单独水平或竖直匹配也是可以的(不一定要有拐点)题解题解的做法很复杂,用后缀数组搞得很麻烦,然后在vj上找到了一个简单的做法AC自动机枚举横行,枚举拐点,然后暴力向下走,在自动机上跑,复杂度 O(n3)O(n^3)O(n3)...原创 2019-12-08 10:03:13 · 340 阅读 · 1 评论 -
ICPC World Final 2019 G First of Her Name AC自动机 树上SA 广义后缀自动机
题意给出一个字符构成的树,每个节点到根经过的字符组成一个字符串。有多个询问,每次询问一个字符串,求询问串是多少个字符串的前缀题解在树上求后缀数组,求出每个字符串的字典序的排名对于询问操作,找出询问串在字符串中的排名的区间范围,就得出答案了由于是有序的,所以可以用二分查找,前缀等于询问串的最小和最大的排名,差值就是答案注意二分查找时的边界问题:La=n+1,Ra=0La=n+1,Ra=0...原创 2019-11-06 11:29:25 · 417 阅读 · 0 评论 -
Codeforces 1202E You Are Given Some Strings...
题意给出一个长串 ttt ,n个短串 sis_isi ,问两两连接成的 si+sjs_i+s_jsi+sj 在 ttt 的出现次数的和为多少题解从另一个角度分析,每次的匹配,在 ttt 中的sis_isi和sjs_jsj 的连接位置 +1, 我们枚举 ttt 的每一个对应连接的位置,看有多少对能匹配上若在位置 kkk 能匹配上,有一个特征,si=t[i−len(si)+1,k]...原创 2019-08-14 09:58:30 · 358 阅读 · 2 评论 -
洛谷 P5357 AC自动机 模板题
题目链接题意给出一个长串,提问n个串,输出在长串中出现的次数题解将n个询问的串建立AC自动机,拿长串去匹配首先不能暴力跳 failfailfail 去统计了,因为,答案的总和肯定是 n2n^2n2 级别的,所以肯定不是暴力跳 failfailfail 一个一个去累加答案的根据 failfailfail 的含义,如果当前结点匹配成功,那么他的 failfailfail 指向的结点一定也匹...原创 2019-08-14 21:06:01 · 231 阅读 · 0 评论