字典树
霜刃未曾试
这个作者很懒,什么都没留下…
展开
-
poj 2513 字典树+并查集
题目:http://poj.org/problem?id=2513题意:给定一些木棒,木棒两端都涂上颜色,求是否能将木棒首尾相接,连成一条直线,要求不同木棒相接的一边必须是相同颜色的。思路:刚开始用map去做映射,超时了。。。都忘记字典树了,于是用字典树去映射,记录每个点出现的次数,当奇数顶点等,1或超过2,必然不可能,最后还要判断点之间是不是连通,不连通必然不可能#include原创 2016-04-05 21:02:23 · 475 阅读 · 0 评论 -
EOJ 3261 分词 dp+字典树
题目:http://acm.ecnu.edu.cn/problem/3261/题意:有一句句子因为粘贴的时候出现了一点问题空格全部丢失了。现在给一本字典,每个词都对应这个词出现的频率(每十亿)。根据这个频率,我们可以根据下面的公式算出这个词带来的收益 P(word):P(word)=len2(word)⋅ln(frequency(word)) 其中 frequency 就是上面所提到的频率。len原创 2017-05-24 17:19:38 · 506 阅读 · 0 评论 -
hihoCoder 1014 Trie树 字典树模板
题目:http://hihocoder.com/problemset/problem/1014题意:首先给出一些字符串,代表字典里的单词。然后再给出一些字符串,询问字典中以当前字符串为前缀的单词个数思路:字典树模板题。留个模板 动态字典树,特点是好写好理解,确定是效率慢,有可能TLE//多实例记得调用trie_del函数清空字典树,单实例无所谓#include <bits/stdc++.h>u原创 2017-05-31 20:28:11 · 432 阅读 · 0 评论 -
CSU 1216 异或最大值 01trie
题目:https://vjudge.net/problem/CSU-1216题意:给定一些数,求这些数中两个数的异或值最大的那个值Input 多组数据。第一行为数字个数n,1 <= n <= 10 ^ 5。接下来n行每行一个32位有符号非负整数。Output 任意两数最大异或值思路:最暴力的方法是枚举两个数,这样显然不可行,当枚举xx时,怎么找到另一个数字yy使得x⨁yx\bigoplus y最原创 2017-08-28 16:21:50 · 413 阅读 · 0 评论 -
HDU 5536 Chip Factory 01trie
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5536题意:给出nn个数,从这些数字中任选33个不同的数字x,y,zx,y,z,求出一个值(x+y)⨁z(x+y)\bigoplus z,求所有值里面的最大值思路:暴力居然可过。。。然后正解是用字典树去求最大异或值,首先把nn个数字插入到01trie01trie中,然后枚举x+yx+y,首先从字典树中删掉x,原创 2017-08-28 17:22:03 · 380 阅读 · 0 评论 -
HDU 5269 ZYB loves Xor I 01trie
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5269题意:给定一个长度为nn的数组, 求(lowbit(Ai⨁Aj))(i,j∈[1,n])(lowbit(Ai\bigoplus Aj)) (i,j∈[1,n])的和,结果取模998244353998244353思路:首先把所有数字倒着插入到trietrie中,然后查询每个数字和所有数字的异或再lowbi原创 2017-08-28 20:03:44 · 370 阅读 · 0 评论 -
HDU 6191 Query on A Tree 可持久化trie + dfs建树 || 启发式合并trie
题目:http://acm.hdu.edu.cn/showproblem.php?pid=6191题意:给出一棵树,树上每个点有点权,每次询问给出u x,求以u为根的子树中点权和x异或得到的最大值思路:dfs序建可持久化trie,然后就和普通可持久化trie一样了。还有启发式合并做法,一会学一下#include <bits/stdc++.h>using namespace std;const int原创 2017-09-02 13:28:41 · 390 阅读 · 0 评论 -
51nod 1295 XOR key 01trie(可持久化字典树坑已填)
题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1295题意:给出一个长度为N的正整数数组A,再给出Q个查询,每个查询包括3个数,L, R, X (L <= R)。求A[L] 至 A[R] 这R - L + 1个数中,与X 进行异或运算(Xor),得到的最大值是多少? Input 第1行:2个数N, Q中间用空格分原创 2017-08-30 15:07:13 · 466 阅读 · 0 评论