AC自动机=trie树+KMP。 代码如下:(自行理解) ...
分类:
其他好文 时间:
2018-02-22 13:38:20
阅读次数:
135
RT trie树是一种用于实现字符串的快速检索的树结构;大该是每个节点都有若干个指向字符的指针;如图: 好像看不清,不过没多大事; 然后trie树支持两个操作:插入,查找; 先放代码 然后就可以来到例题https://www.luogu.org/problemnew/show/P2580; 但是这学 ...
分类:
其他好文 时间:
2018-02-20 22:52:09
阅读次数:
197
看看这个问题: 给出n个单词和m个询问,每次询问一个前缀,回答询问是多少个单词的前缀。n<=200000 相信一些人除了暴力枚举貌似就没法子了…… 其实我们可以用tire树。 什么是trie树? 显然这是个树(废话),那么我们用f[i][j]=k,表示编号为i的第j个子节点编号为k,那么我们从roo ...
分类:
其他好文 时间:
2018-02-20 10:31:10
阅读次数:
107
牛客练习赛11 B 假的字符串题意:给定n个字符串,互不相等,你可以任意指定字符之间的大小关系(即重定义字典序),求有多少个串可能成为字典序最小的串,并输出它们。 tags:好题 对于一个字符串, 1】如有其它字符串是它的前缀,那肯定不可能。这个直接用字典树处理就可以。 2】但如果以这个字符串为最小 ...
分类:
其他好文 时间:
2018-02-19 12:40:05
阅读次数:
261
BZOJ_3012_[Usaco2012 Dec]First!_trie树+拓扑排序 题意: 给定n个总长不超过m的互不相同的字符串,现在你可以任意指定字符之间的大小关系。问有多少个串可能成为字典 序最小的串,并输出这些串。n <= 30,000 , m <= 300,000 分析: 首先不考虑大小 ...
分类:
编程语言 时间:
2018-02-09 17:32:05
阅读次数:
156
异或最大值 Description异或最大值求$n$个非负数 (int范围) 中任意2个的异或值的最大值$(n≤1e5)$ Hint我们注意到$n^2$肯定过不了,所以要用更好的方法每个数最多$2^{31}$,只有31位,想到转化成$O(31n)$可以过,也就是说我们要分位处理运用$trie$树,把 ...
分类:
其他好文 时间:
2018-02-07 19:43:07
阅读次数:
244
字典树,顾名思义,是用来进行字符串查找的一种数据结构。试想一下,如果给你一堆字符串,问你其中每个字符串是否出现过,那怎么办?很容易,map,短小精悍。那如果给你一堆单词,再丢给你另一堆字符串,问你字符串中出现过哪些单词构成的前缀呢? 这里就可以用到trie树这种结构了。 首先假设所有字符串均为小写, ...
分类:
其他好文 时间:
2018-02-06 23:12:27
阅读次数:
323
Description ![题面][1] Solution 记录前缀答案和后缀答案,然后枚举断点合并即可 求出以每一个结尾的最大异或的段,相当于求两个前缀异或值的最大值,用trie树贪心即可 [1]:http://www.lydsy.com/JudgeOnline/upload/201509/fa( ...
分类:
其他好文 时间:
2018-02-03 12:44:57
阅读次数:
168
首先,介绍一下AC自动机(Aho-Corasick automaton),是一种在一个文本串中寻找每一个已给出的模式串的高效算法。 在学习AC自动机之前,你需要先学习Trie树和KMP算法,因为AC自动机正式利用并结合了两者的思想。 说到实际的不同,其实AC自动机只是在Trie树上引入了一个类似KM ...
分类:
其他好文 时间:
2018-01-29 17:42:15
阅读次数:
256
一个字符串的题,有姿势水平的OIers的脑中应该要浮现出许多算法…… 但是我没有姿势,也没有水平,除了KMP和trie树,什么也想不起来。 直到我学了它——后缀数组! 多亏这玩意儿,我现在什么都想不起来了。 后缀数组干嘛用的? 主要处理同一个字符串中的重复子串问题。 如何实现? 注意到每一个子串,都 ...
分类:
编程语言 时间:
2018-01-26 22:43:25
阅读次数:
213