字典树 异或
stduy_ing
这个作者很懒,什么都没留下…
展开
-
HDU 6955 Xor sum (字典树 + 前缀)
链接:Xor sum 题意: 给一个长度为 n 的数组 , 要求出一个最短的连续子段,使它的异或和大于等于 k。 思路: 首先我们要知道 [1 , l]的前缀异或和与 [l , r]的前缀异或和 的异或为 [l + 1 , r] 的异或和。所以我们对于每一个右端点,用字典树查询左边的每一个前缀异或和 , 同时字典树存当前01串出现的最右位置。 代码: #include <iostream> #include <cstdio> #include <queue> #incl原创 2021-07-21 09:25:28 · 292 阅读 · 0 评论 -
Leetcode 5696. 统计异或值在范围内的数对有多少 (字典树)
链接: Leetcode 5696 题意: 给出一个 num 数组 , 和 low ,high,求数组中有多少个点对(i , j)满足 num[i] ^ num[j] ≥\geq≥ low && num[i] ^ num[j] ≤\leq≤ high. 思路 : 求异或值满足一个范围,肯定是字典树 , 我们可以对每一个数单独考虑。对于每一个数,从高位开始,如果某一位的运算结果大于 low 那后面的 就可以随便是什么了,high也同理 , 所以只要递归往后找每一位,并维护 两个条件 ,当前是原创 2021-03-25 22:16:28 · 219 阅读 · 3 评论