Processing math: 100%

随笔分类 -  AC自动机

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

点击右上角即可分享
微信分享提示