每日一题:异或

题目

给定整数 $m$ 以及 $n$ 各数字 $A_1,A_2,..A_n$,将数列 $A$ 中所有元素两两异或,共能得到 $n(n-1)/2$ 个结果,请求出这些结果中大于 $m$ 的有多少个。

Solution

为了避免重复计算,字典树可以边维护边插入,先查询之前有多少个数与当前数 $x$ 异或和大于 $m$,我们从高位向低位枚举,对于两个数的同一个二进制位,需要分四种情况讨论:

阅读更多
Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×