随笔分类 - AC自动机
摘要:AC自动机 前(che)言(dan) Aho Corasick automation ,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出 $n$ 个单词,再给出一段包含 $m$ 个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有模式树(字典
阅读全文
摘要:考虑两一个暴力 1 因为询问$[a,b]$可以拆成$[1,b]$ $[1,a 1]$所以把询问离线,然后就是求$[1,x]$中被$S_i$包含的串的数量。考虑当$[1,x 1] [1,x]$时我们把$S_x$结束节点在fail树的子树加1。然后询问就是求$S_i$在AC自动机上跑时经过所有点的点权用
阅读全文
摘要:~~SAM+线段树合并的裸题。~~ 但我们讨论AC自动机的做法。 先建出AC自动机。考虑询问在[a,b]中出现的次数就是$[1,b]$的出现次数 $[1,a 1]$的出现次数。把询问离线。然后我们要求的就是第i个字符串在$[1,x]$中出现次数。我们在从$[1,x 1]$到$[1,x]$的过程中把$
阅读全文
摘要:建立AC自动机然后,加入一个串之后考虑这个串的贡献。我们把这个串扔到AC自动机里面跑。最后对经过每一个点到的这个点在fail树的根的路径上的点有1的贡献。求链的并,我们把这些点按DFS序排序,然后把每一个点加1,每个点与上一个点的LCA 1,然后询问时的答案就是子树和这个用树状数组维护就行。至于为什
阅读全文
摘要:题意 给你n个串。问有多少长度为m的串使得这n个串至少在其中出现过一次。输出答案膜10007意义下的结果。 (n<=100,每个串的长度<=100) 题解 在AC自动机上跑DP。 用到一个容斥的思想,求至少出现过一次的次数就是,全部可能-一次都没出现的次数。 所以考虑dp,对于一个长度为i的串从i-
阅读全文

浙公网安备 33010602011771号