非常板的一道题。
看到区间异或和就能想到转换为前缀异或,即
又想到位运算各位之间互不干涉,所以想到按位来考虑。以其中一位为例,能构成一个 01 序列,对它做前缀异或后,记为 (b_i)。那么 (b_i) 的贡献就是
所以只需要统计前缀 0 和 1 的个数,随便更新一下答案就可以了。