TRIE
Zeolim
这个作者很懒,什么都没留下…
展开
-
[Trie] 最长异或值路径
异或最值问题是Trie的拿手强项看到异或应该先想Trie和前缀和给定一个树,树上的边都具有权值。树中一条路径的异或长度被定义为路径上所有边的权值的异或和:⊕ 为异或符号。给定上述的具有n个节点的树,你能找到异或长度最大的路径吗?输入格式第一行包含整数n,表示树的节点数目。接下来n-1行,每行包括三个整数u,v,w,表示节点u和节点v之间有一条边权重为w。...原创 2019-05-05 10:49:01 · 314 阅读 · 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 · 521 阅读 · 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 · 238 阅读 · 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 · 259 阅读 · 0 评论 -
[Trie] 最大异或对
题目:给定一数组, 求一对位置 i, j 且有arr[i] ^ arr[j]值最大, 输出最大值解法:暴力求肯定不妥,所以需要一种快速的存储此前所有数字的数据结构并通过异或贪心求出最大值简单推导:异或, 不进位加法, 同零异一所以当前位置的最优解即为此前所有数字中, 与当前数二进制位相异的最多且最优即为解最优很简单, 从高位到低位不同最优, 高位的权重大,这...原创 2019-04-08 18:58:49 · 269 阅读 · 0 评论