字典树
林黛玉倒拔垂杨柳
你我最后也平凡到自命不凡
展开
-
AcWing 835. Trie字符串统计 (字典树模板题)
Trie字符串统计 维护一个字符串集合,支持两种操作: “I x”向集合中插入一个字符串x; “Q x”询问一个字符串在集合中出现了多少次。 共有N个操作,输入的字符串总长度不超过 105,字符串仅包含小写英文字母。 输入格式 第一行包含整数N,表示操作数。 接下来N行,每行包含一个操作指令,指令为”I x”或”Q x”中的一种。 输出格式 对于每个询问指令”Q x”,都要输出一个整数作为结果,表示x在集合中出现的次数。 每个结果占一行。 数据范围 1≤N≤2∗104 解题思路:很显然这是一个字典树的模板题原创 2020-09-13 10:48:39 · 130 阅读 · 0 评论 -
【CF706D】Vasiliy‘s Multiset (Trie字典树求异或+添加 删除 查询操作)
Vasiliy’s Multiset 题目大意: 有三种类型的查询: “+ x” - 添加一个整数 X。 “ - x” - 删除一次整数 X。它保证至少有一个 X 存在于查询前的集合中。 “?x” - 给定整数 X 并且需要计算该值和一个整数Y的按位异或(也称为XOR)的最大值 这是一个允许相等元素的集合。 解题思路: 如果没有删除的话就是字典树求异或和模板题了,而现在需要有删除操作,我们新开一个index数组记录一下已有的节点即可(不能开bool数组,因为集合中可能有重复元素),添加就+1,删除-1,查原创 2020-07-29 12:24:23 · 149 阅读 · 0 评论 -
Xor Sum (字典树求异或)
Xor Sum (字典树求异或) 题目大意:给出n个数,然后m次查询,问每次要查询的数与这n个数异或最大的值是哪个 解题思路:很显然这是一道字典树求异或的模板题,是POJ 3764的简化版,详细见我的另一篇博客。 Code: #include<iostream> #include<cstdio> #include<cstring> using namespace std; const int MAXN = 100100; int t[MAXN*33][3],tot =原创 2020-07-29 11:10:43 · 468 阅读 · 0 评论 -
POJ 3764 The xor-longest Path (字典树求最大异或 + 链式前向星存图)
The xor-longest Path 题目大意:给定一颗N个节点的树,树上的每一条边都有一个权值。从数中选择两个点x和y,把从x到y的路径上的所有边权xor(异或)起来,得到的结果最大是多少? 解题思路: 因为 a ^ b==(a ^ c) ^ (b ^ c), 即两个点到根的异或和异或一下就是这两个点之间的异或和, 这条性质,我们可以记录下当前节点到根节点的异或和,然后转成01串插入到trie树里面,最后按照贪心思想匹配的时候尽可能的匹配与当前位不同的即可。 Code: #include<ios原创 2020-07-28 22:27:37 · 189 阅读 · 0 评论 -
难题统计 (字典树模板)
难题统计 解题思路:字典树模板题,记录下结束的节点出现的次数,然后匹配成功输出出现次数即可 Code: #include <iostream> #include <cstdio> #include<cmath> #include <cstring> #include <algorithm> #include <vector> #include <set> #include <map> using namespa原创 2020-07-28 10:47:19 · 98 阅读 · 0 评论 -
Phone List (排序+字典树)
Phone List (排序+字典树) 题目大意:给出多组字符串,问是否有某一个字符串是另一个字符串的前缀,有的话输出NO,没有 输出YES。 解题思路:把字符串按照长度从大到小排序一下,然后插入,看此串是否出现过。 Code: #include <iostream> #include <cstdio> #include<cmath> #include <cstring> #include <algorithm> #include <vec原创 2020-07-27 19:46:29 · 531 阅读 · 0 评论 -
Shortest Prefixes(字典树求唯一前缀)
Shortest Prefixes 字典树 题目大意: 给出一些单词,找出每个单词的最短前缀,这个前缀不能和其他单词的前缀相同,即前缀唯一,否则就输出它本身。 思路: 字典树模板题,记录一下每个串出现的次数,如果是叶节点,即vis【i】==1,就为答案 。 Code: #pragma GCC optimiza(2) #include <iostream> #include <cstdio> #include<cmath> #include <cstring>原创 2020-07-27 12:27:51 · 363 阅读 · 0 评论