Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有模式树(字典树)Trie和KMP模式匹配算法的基础知识。KMP算法是 ...
分类:
其他好文 时间:
2020-06-14 16:49:06
阅读次数:
40
1、树的简介 树结构本身是一种天然的组织结构 计算机文件夹 家谱 图书馆图书分类 公司职工 将数据使用树结构存储后,出奇的高效 2、树的分类 二分搜索树(Binary Search Tree) 平衡二叉树 AVL 红黑树 堆 并查集 线段树 Trie (字典树,前缀树) 3、二叉树简介 一个元素具有 ...
分类:
其他好文 时间:
2020-06-11 19:47:18
阅读次数:
55
P3065 [USACO12DEC]First! G 题目大意:给你$n$个字符串,字符串的总长度不超过$300000$,问你在自定字典序的情况下有哪些字符串的字典序能够最小。 看到这道题第一想法是字典树和判环。字典树是存储字符串的方式,环则是判断矛盾的方式,考虑如何把这两个结合起来。 先看样例: ...
分类:
其他好文 时间:
2020-06-10 21:31:53
阅读次数:
64
Keadin非常苦恼,他马上就要去阿里实习了,但根据公司的规定,在此之前他要为自己取一个在公司内使用的花名,Keadin的取名困难症犯了。他想了一个选出自己花名的规则,但这个规则太复杂所以他想请你帮忙。出于羞耻心和公司的保密要求,Keadin加密了所有字符串,因此你看到的所有字符串都只包含0、1两种 ...
分类:
其他好文 时间:
2020-05-27 17:03:49
阅读次数:
65
题意: 给出 $n$ 个字符串,$q$ 组查询,每次查询第 $L$ 到第 $R$ 个字符串中有多少个不同的前缀。强制在线。 数据范围:$1≤N≤100000,1≤Q≤100000$,字符串总长最大为 $1e5$。 分析: 用字典树给每种前缀进行编号,最多有 $1e5$ 个前缀。问题即转化为求区间内不 ...
分类:
其他好文 时间:
2020-05-23 00:34:36
阅读次数:
49
import java.util.TreeMap; class Trie { private class Node{ public boolean isWord; public TreeMap<Character, Node> next; public Node(boolean isWord){ t ...
分类:
其他好文 时间:
2020-05-10 10:59:32
阅读次数:
66
首先建立好trie,由于问题询问的结点和不超过2e5,可以用虚树解决 bug百出。。调试了一上午 /* 对给定串建立trie,标记上终止结点,d[u]表示结点u的深度 对于每个询问,标记k个串对应的终止结点,然后建立虚树 虚树里维护size[u],fa[u],所有size[u]=L的点都是符合要求的 ...
分类:
其他好文 时间:
2020-05-01 15:12:41
阅读次数:
69
字典树是一颗无根树,可以是01字典树,也可以是字符串字典树。 J - Coolbits ZOJ - 4135 给出n个区间,每个区间里拿出一个数,使得总体异或值最大,求最大异或值。 一个一个枚举数是不行的,时间肯定不对,于是考虑枚举二进制位数。 从高位到低位枚举的贪心是正确的, 当你枚举一个区间当前 ...
分类:
其他好文 时间:
2020-04-16 00:35:38
阅读次数:
79
题目链接:https://nanti.jisuanke.com/t/42400 这还是去年去现场赛打的,当时菜的不行,就白给了。最近学了主席树套树状数组,感觉好强的数据结构啊。我们学长说这题挺简单,建字典树dfs序,跑cdq分治就好了(%%%)。本菜鸡发现这题主席树套树状数组也能做。 题意:给你n个 ...
分类:
其他好文 时间:
2020-04-15 16:32:05
阅读次数:
135
题意: 给一个序列,问有多少个区间的异或和大于等于$K$。 思路: 处理出前缀异或和。 对于每个区间$(l,r)$的异或和为$sum[l] \^ sum[r]$。 对于每个$sum[i]$,如果大于$K$,$ans+1$。 在字典树上查询二进制的每一位。 ①$sum=1,k=1$:走$next[0] ...
分类:
其他好文 时间:
2020-04-14 18:32:27
阅读次数:
67