随笔分类 -  AC自动机

F - x-prime Substrings (AC自动机 + dp)
摘要:题目:传送门 题意 思路 看数据很容易想到二维 DP,只不过只想到 DP 还远远不够。 和不超过 20 的字符串不超过 2500 个,长度最长为 20。 那我们可以先暴力预处理出这些字符串,并建 trie 树. 用 dp[i][j] 表示处理完前 i 个字符,后缀在 trie 树上对应着 节点 j 阅读全文

posted @ 2020-09-06 16:36 Willems 阅读(106) 评论(0) 推荐(0)

UVA 11019 Matrix Matcher ( 二维字符串匹配, AC自动机 || 二维Hash )
摘要:题目: 传送门 题意: 给你一个 n * m 的文本串 T, 再给你一个 r * c 的模式串 S; 问模式串 S 在文本串 T 中出现了多少次。 解: 法一: AC自动机 (正解) 670ms 把模式串的每一行当成一个字符串, 建一个AC自动机。 然后设cnt[ x ][ y ] 表示文本串中,以 阅读全文

posted @ 2019-12-08 16:04 Willems 阅读(410) 评论(0) 推荐(0)

POJ 2778 DNA Sequence (矩阵快速幂 + AC自动鸡)
摘要:题目:传送门 题意: 给你m个病毒串,只由(A、G、T、C) 组成, 问你生成一个长度为 n 的 只由 A、C、T、G 构成的,不包含病毒串的序列的方案数。 解: 对 m 个病毒串,建 AC 自动机, 然后, 这个AC自动机就类似于一张有向图, 可以用邻接矩阵存这张有向图。 最多10个病毒串, 每个 阅读全文

posted @ 2019-12-08 09:54 Willems 阅读(167) 评论(0) 推荐(0)

UVA 11468 Substring (记忆化搜索 + AC自动鸡)
摘要:传送门 题意: 给你K个模式串, 然后,再给你 n 个字符, 和它们出现的概率 p[ i ], 模式串肯定由给定的字符组成。 且所有字符,要么是数字,要么是大小写字母。 问你生成一个长度为L的串,不包含任何模式串的概率是多少。 解: 记忆化搜索 + AC自动机。 对模式串建一个AC自动机, 不需要l 阅读全文

posted @ 2019-12-07 22:54 Willems 阅读(231) 评论(0) 推荐(0)

Dominating Patterns (AC 自动鸡模版题, 出现次数最多的子串)
摘要:传送门 题意: 给你n个模式串, 再给你一个 文本串,问模式串在文本串中出现次数最多是多少。 出现次数最多的模式串有哪些。 解: 模版题。 #include <bits/stdc++.h> #define LL long long #define rep(i, j, k) for(int i = j 阅读全文

posted @ 2019-12-07 11:50 Willems 阅读(239) 评论(0) 推荐(0)

导航