题解 P3917 【异或序列】

冷月冰瞳

2017-09-02 00:21:02

题解

按二进制每一位分开算。

记前缀异或值X[0...N],一段区间[L, R]的异或值就是X[L-1] xor X[R]。

那么就是统计有多少个区间的异或值是1,那只需要统计X[0...N]中是0和1的分别有多少个,两个个数相乘就是区间个数。