![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
TRIE
Zeolim
这个作者很懒,什么都没留下…
展开
-
[Trie] 最长异或值路径
异或最值问题是Trie的拿手强项 看到异或应该先想Trie和前缀和 给定一个树,树上的边都具有权值。 树中一条路径的异或长度被定义为路径上所有边的权值的异或和: ⊕ 为异或符号。 给定上述的具有n个节点的树,你能找到异或长度最大的路径吗? 输入格式 第一行包含整数n,表示树的节点数目。 接下来n-1行,每行包括三个整数u,v,w,表示节点u和节点v之间有一条边权重为w。 ...原创 2019-05-05 10:49:01 · 292 阅读 · 0 评论 -
[trie][异或] hdu 6625 three arrays
先将题意转换为求A和B中的最小最优异或对并排序输出 所以可以建两颗trie并同时在两颗树内贪心跳转找最小异或对排序输出 贪心匹配可以建cnt数组记录当前节点个数,匹配时走过节点个数就直接减一 最优匹配顺序必然是先相同0 0 , 1 1 再不同 0 1 , 1 0 完! /* Zeolim - An AC a day keeps the bug away */ //pra...原创 2019-08-07 09:28:36 · 488 阅读 · 0 评论 -
[可持久化01Trie] BZOJ 3261 最大异或和
给定一个非负整数序列{a},初始长度为N。 有M个操作,有以下两种操作类型: 1、Ax:添加操作,表示在序列末尾添加一个数x,序列的长度N+1。 2、Qlrx:询问操作,你需要找到一个位置p,满足l<=p<=r,使得: a[p] xor a[p+1] xor ... xor a[N] xor x 最大,输出最大是多少。 Input 第一行包含两个整数 N ,M,含义如问...原创 2019-09-03 09:23:49 · 211 阅读 · 0 评论 -
[DFS序上建可持久化字典树贪心异或最大值] Query on A Tree HDU - 6191
题意:给出一颗树和Q个询问 对于每个询问 x y 你需要搞出 x 节点 子树上一点 (包括自己) 与 y 值异或的最大值 解题思路: 套路题 子树 → dfs序 异或极值 → trie树 dfs + trie → 可持久化trie 按连续序列建树即可 代码 /* Zeolim - An AC a day keeps the bug away */ ...原创 2019-09-03 20:44:14 · 239 阅读 · 0 评论 -
[Trie] 最大异或对
题目: 给定一数组, 求一对位置 i, j 且有arr[i] ^ arr[j]值最大, 输出最大值 解法: 暴力求肯定不妥, 所以需要一种快速的存储此前所有数字的数据结构 并通过异或贪心求出最大值 简单推导: 异或, 不进位加法, 同零异一 所以当前位置的最优解即为此前所有数字中, 与当前数二进制位相异的最多且最优即为解 最优很简单, 从高位到低位不同最优, 高位的权重大,这...原创 2019-04-08 18:58:49 · 246 阅读 · 0 评论