题意 给定 $n$ 个字符串,$m$ 个询问,每次询问 $a$ 字符串的后缀和 $b$ 字符串的前缀最多能匹配多长。 $1\leq n,m \leq 10^5$ 思路 多串匹配,考虑 $\text{AC}$自动机,对 $n$ 个串建自动机,观察这个结构,不难发现 $Trie$ 树的结构和前缀有关,$ ...
分类:
其他好文 时间:
2019-01-06 17:59:19
阅读次数:
202
被慎老师教育数位$dp$怎么写了 看来我数位$dp$的写法太落后了 这道题很显然就是一个$AC$自动机上的数位$dp$,按照套路 我们可以设计$dp[i][j][0/1]$表示匹配了$i$为在自动机上的$j$位置,不卡/卡上界 卡上界是一个很神奇的东西,代表这一位和之前的所有位都和上界相等 如果一个 ...
分类:
其他好文 时间:
2019-01-01 21:18:48
阅读次数:
193
矩阵乘法+$AC$自动机 是道很不错的题了 首先是前六十分,就是一个$AC$自动机上的套路$dp$,设$dp[i][j]$表示匹配出的长度为$i$在自动机上位置为$j$的方案数,转移的话就枚举下一个单词选择哪个放到自动机上一波匹配就好了 后面$40$分强行变成了另外一道题,$L$变成了$1e8$,一 ...
分类:
其他好文 时间:
2019-01-01 19:52:56
阅读次数:
207
题目背景 通过套取数据而直接“打表”过题者,是作弊行为,发现即棕名。 这是一道简单的AC自动机模板题。 用于检测正确性以及算法常数。 为了防止卡OJ,在保证正确的基础上只有两组数据,请不要恶意提交。 管理员提示:本题数据内有重复的单词,且重复单词应该计算多次,请各位注意 题目描述 给定n个模式串和1 ...
分类:
其他好文 时间:
2018-12-31 18:56:24
阅读次数:
178
Trie树(字典树) 树中任一结点p都对应于一个字符串S,S由从根出发走到p所经过的边上的字符构成 数据结构 操作 插入串 (复杂度为模式串长度) Trie图(AC自动机) 可以由Trie树为基础构造 终止节点:每个模式串最后一个结点 危险结点:终止节点和前缀指向危险结点的结点。 包含前缀指针(ne ...
分类:
其他好文 时间:
2018-12-30 17:25:47
阅读次数:
189
题目大意: 给定n个给定的串,求有多少个串满足存在给定的串是这个串的子串。 思路: 直接计算存在的不太好算,考虑反面计数,计算有多少个串找不到匹配。 那么当我们把AC自动机给建出来之后,不难发现一个满足要求的串会一直在AC自动机上面跳并且到不了已经匹配上的节点,于是问题便转化成了有向图的路径计数。 ...
分类:
Web程序 时间:
2018-12-27 20:19:25
阅读次数:
223
题目大意: 某人读论文,一篇论文是由许多单词组成。但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次。 思路: 第i个单词在整个文章中出现了多少次即i串的结尾可以被多少个串的节点给跳到。 于是吧fail看成每个节点唯一的父亲,每个节点的权值为有多少个单词的前缀经过了它,然 ...
分类:
其他好文 时间:
2018-12-27 18:48:26
阅读次数:
110
题意 "题目链接" 分析 题意容易转化成求循环之后不包含 $s$ 的串的个数。 首先建立 AC 自动机。考虑一个暴力的做法:枚举长度为 $n$ 的字符串 $t$ 最终(后缀) 和 $s$ 的匹配长度是多少 ($i$)。 这样在开始的时候,我们再记录一维从 $t$ 的第 $i+1$ 个位置开始匹配且没 ...
分类:
其他好文 时间:
2018-12-26 16:58:18
阅读次数:
175
解题思路 题目要求求出包含至少一个串的方案 考虑用总方案$26^M$减去不包含的方案 将给定$N$个串建出AC自动机 定义 危险结点 为该节点 在Trie上代表的串 包含了给定串中某个 由fail树的性质可知,这类结点出现且仅出现在某个 结尾结点 在 fail树 上的子树内 然后就可以dp了 定义$ ...
分类:
Web程序 时间:
2018-12-21 22:44:31
阅读次数:
299
"P3041 [USACO12JAN]视频游戏的连击Video Game Combos" 看到匹配,当然用AC自动机 常我们有文本串,这里仅给出长度,怎么计算得分呢 按模式串建自动机,跑一边$dp$,字符集较小,都不需要统计每个点的值 直接往上扫累加就行 My complete code: cpp ...
分类:
其他好文 时间:
2018-12-21 12:49:47
阅读次数:
169