冷月冰瞳
2017-09-02 00:21:02
按二进制每一位分开算。
记前缀异或值X[0...N],一段区间[L, R]的异或值就是X[L-1] xor X[R]。
那么就是统计有多少个区间的异或值是1,那只需要统计X[0...N]中是0和1的分别有多少个,两个个数相乘就是区间个数。