首页 > TAG信息列表 > 200002

【ARC092B】题解

一位位拆开来算。对于每一位 $i$,把数组 $a$ 和 $b$ 中高于 $i$ 位的位去掉。 容易发现,当且仅当 $2^i\leq a_j+b_k<2^{i+1}$ 或 $2i+2{i+1}\leq a_j+b_k$ 时,$a_j+b_k$ 的第 $i$ 位为 $1$。 用双指针分别计算 $a_j+b_k<2i$、$a_j+b_k<2{i+1}$、$a_j+b_k<2^{i+2}$ 的个数,容斥一下即可