
AC自动机
天翼之城*
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Codeforces 1437 G. Death DBMS —— AC自动机+树链剖分
This way 题意: 给你n个字符串,并且每个字符串都有一个值,初始为0 每次有两种操作 1 x y 更改第x个字符串的值为y 2 s 问你n个串中s的子串的最大值是多少 题解: 首先考虑ac自动机,因为它可以快速检查子串(其实是因为字符串算法中这个比较熟) 然后的话我们肯定不能当前的串在自动机里面走到哪再跳一遍fail边,这样肯定会T。于是老套路出现了:建fail树,然后我们怎么样快速的找到fail树上的节点到根节点路径上的最大值呢——树链剖分 最后要注意:会出现两个字符串相同的情况,这样子他们在a原创 2020-11-16 18:34:58 · 196 阅读 · 0 评论 -
2020牛客暑期多校训练营(第二场)A All with Pairs —— AC自动机,广义后缀自动机
This way 题意: 给你n个字符串,任意选两个字符串,答案加上前一个字符串前缀和后一个字符串的后缀最长相同的部分长度的平方。问你答案是多少 题解: 想练一下AC自动机,就用这个写了,有时间的话再用广义后缀自动机写一下。 首先我们肯定是要枚举所有的字符串,问题是将它当做前缀还是后缀。把当前的字符串当成后缀的话,你的fail指针是这么跳的时候,会很难维护是否有的字符串的前缀已经被访问过了: 那么这种请况我一下子还想不出来怎么解决,有可能要用lca什么的吗?然后就换了一种思路:把当前枚举的字符串当成前缀,原创 2020-07-15 10:56:49 · 380 阅读 · 0 评论 -
DIVLJAK —— ac自动机
应该能进 题意: 现在有n个字符串,q个询问,每次询问有两种操作: 1 s 给你一个串s 2 x 问你在一开始给你的n个字符串中第x个字符串,是后来给你的字符串中多少个的子串。 题解: 这题 比赛的时候没看,因为被别的水题卡住了。其实就是一个ac自动机模板题一样的水题,只需要对n个字符串建树,然后每次增加字符串的时候跑一遍即可,但是要注意同一个字符串每个点最多只能增加一次,所以需要一个vis数组查看当前点是否这次已经标记过了。 #include<bits/stdc++.h> using name原创 2020-07-12 09:32:42 · 215 阅读 · 0 评论 -
Gym 101174 E - Passwords —— AC自动机+状压DP
This way 题意: 给出 n 个字符串黑名单,要求组成长度为 a−ba-ba−b 的字符串,其中不能包含这n个字符串的任意一种,并且至少有一个大写字母,一个小写字母,一个数字,并且所包含的所有字符也只能是字母与数字。其中相似字符算同一种字符,即在匹配时是一致的,所有字母大小写相似,0−o,1−i,3−e,5−s,7−t0-o,1-i,3-e,5-s,7-t0−o,1−i,3−e,5−s,7−...原创 2020-04-01 21:43:03 · 197 阅读 · 0 评论 -
Codeforces 1207 G Indie Album —— AC自动机求树上查询前缀中字符串出现次数
This way 题意: 现在从节点一到节点n,每次给你两个操作 1 c表示这个点没有父亲且这个点上的字符为c 2 x c表示这个点的父亲是x且这个点上的字符为c 有m个询问,每次问你 x s 表示从根到x所组成的字符串中含有多少个s 题解: 很优秀的想法,完全不会。 将询问建立ac自动机,然后对所有fail边建立反向边。由与fail边一定是长边指向短边的,那么建立反向边的时候,短边所满足的字符串...原创 2019-09-06 18:48:21 · 340 阅读 · 0 评论 -
牛客 F Typing practice —— ac自动机
链接:https://www.nowcoder.com/acm/contest/147/F 来源:牛客网 输入描述: The first line contains one integer n. In the following n lines, each line contains a word. The last line contains the operation sequenc...原创 2018-08-21 13:33:41 · 311 阅读 · 0 评论 -
G - Fleet of the Eternal Throne HDU - 6138 —— ac自动机
The Eternal Fleet was built many centuries ago before the time of Valkorion by an unknown race on the planet of Iokath. The fate of the Fleet’s builders is unknown but their legacy would live on. I...原创 2018-08-18 12:05:50 · 303 阅读 · 0 评论 -
F - Keywords Search HDU - 2222 —— ac自动机
In the modern time, Search engine came into the life of everybody like Google, Baidu, etc. Wiskey also wants to bring this feature to his image retrieval system. Every image have a long descriptio...原创 2018-08-17 18:38:20 · 300 阅读 · 0 评论 -
Codeforces 1202 E You Are Given Some Strings... —— AC自动机
This way 题意: 给你一个模式串,和一些匹配串,问你任意两个匹配串连起来在模式串出现的次数中的总和是多少。 题解: 用一个正的ac自动机处理出模式串中每个位置匹配串的结尾数量,再用一个反的自动机处理出模式串中每个位置开头的数量即可。 这里好像要预处理ed数组,在build的时候用前缀和的思想将它加上去。要不然会T #include<bits/stdc++.h> using na...原创 2019-10-08 09:47:04 · 282 阅读 · 3 评论