
字典树 异或
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 · 302 阅读 · 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 · 231 阅读 · 3 评论