Trie图(蒟蒻听说AC自动机能做的题Trie图都能做,而且AC自动机可能被卡,就没学过AC自动机),最近想捡一捡,好久之前做的了。 Trie图,就是一个在Trie树上建的图 大概描述一下 比如说有几个字符串: abc abcd bcd bacd jdr ac 先把它们存在Trie树中: 就像KMP ...
分类:
其他好文 时间:
2018-09-18 19:06:53
阅读次数:
318
一看名字就知道这是棵树,而且和字符串有关。 就我理解,Trie树是以字符为边,以字符串信息为点的树。可以用于字符串的去重、检索等。 实现的话,将根节点认为是一个特殊的点,从此开始向下保存字符串。设ch[i][j]存储结点i的字符编号为j的孩子的编号,cnt[i]表示以结点i作为结束的字符串数(也可以 ...
分类:
其他好文 时间:
2018-09-16 20:59:17
阅读次数:
128
AC自动机 AC自动机,说白了就是在trie树上跑kmp(其实个人感觉比kmp容易理解)。是一种多匹配串,单个主串的匹配。概括来说,就是将多个匹配串构造一个trie树,对于每个trie树的节点构造nxt指针,最后把主串放在上面跑。 构造trie树 和普通的trie树构建一样,没有什么区别 inlin ...
分类:
其他好文 时间:
2018-09-15 16:27:51
阅读次数:
198
AC 自动机优化 今天来小谈一下AC自动机的优化。 1:在 trie 树中被搜过的点不用再搜第二遍,标记一下,因为答案已经统计入答案中。 2:有点类似路径压缩的感觉。 如果 nxt 数组为空,则 假设个虚拟节点,然后将它连入下一个 fail 当中 。实现了路径压缩(因为之后如果 nxt 数组不为空, ...
分类:
其他好文 时间:
2018-09-13 22:35:29
阅读次数:
210
https://vjudge.net/problem/UVA-11732 题意 给定n个字符串,问用strcmp函数比较这些字符串共用多少次比较。 strcmp函数的实现 分析 建trie树,把‘\0’也加进去,记录以每个节点为子树包含的单词节点。 然后dfs计数,遇到单词节点,说明可能存在相同的字 ...
分类:
其他好文 时间:
2018-09-11 16:09:39
阅读次数:
190
裸字典树。AC自动机前缀技能 1 #include <set> 2 #include <map> 3 #include <queue> 4 #include <deque> 5 #include <stack> 6 #include <cmath> 7 #include <cstdio> 8 #in ...
分类:
其他好文 时间:
2018-09-05 21:40:31
阅读次数:
146
好久没有模拟了,然后一模拟就gg…… T1 高维宇宙 因为模拟标题上写的noip,所以当时我就压根没往二分图匹配想,而是生成了了一个像邻接矩阵的表,t[i][j]表示 a[i] + a[j],然后在倒三角矩阵里爆搜……虽然加上了如果加上当前最大值仍小于ans就返回的剪枝,但还是稳稳地30分……果然搜 ...
分类:
其他好文 时间:
2018-09-02 20:55:10
阅读次数:
192
传送门1(简单版) 传送门2(增强版) AC自动机……(至于自动机是啥我也看不懂……请自行百度) AC自动机简单来说可以被看成是trie树和KMP算法的结合体,它的用途主要是多模匹配,就是给你一个文本串和多个模式串,询问你诸如:有多少个模式串在文本串中出现过,或是什么模式串在文本串中出现了多少次之类 ...
分类:
其他好文 时间:
2018-08-30 01:56:34
阅读次数:
172
题意简介 题目就是叫你找两个不重合的非空区间,使得这两个区间里的数异或后相加的和最大 (看到异或,没错就决定是你了可持久化trie!) 思路 水一波字典树,莫名觉得这题可持久化能过,于是水了一发挂了,造了一波数据,然后发现是自己在做完一遍可持久化之后cnt 没有清零.... 其实要用可持久化trie ...
分类:
其他好文 时间:
2018-08-25 17:34:22
阅读次数:
301
分析 在trie树上贪心,将所有串加入trie树中,在深度较深的地方匹配会更优。 由于只需要知道最后的总质量,所以直接取每个点的子树中最大的匹配即可 复杂度$O(\sum len)$ 加串的时候把路径上$val$加$1$,查询串的时候把沿途$val$减$1$,$ans$为减去的$1$的个数。 注意$ ...
分类:
其他好文 时间:
2018-08-24 22:15:15
阅读次数:
187