异或序列
作者:互联网
Link
Solution
非常板的一道题。
看到区间异或和就能想到转换为前缀异或,即
\[\sum_{i=1}^n \sum_{j=0}^{i-1} s_i \oplus s_j \]又想到位运算各位之间互不干涉,所以想到按位来考虑。以其中一位为例,能构成一个 01 序列,对它做前缀异或后,记为 \(b_i\)。那么 \(b_i\) 的贡献就是
\[\sum_{j=0}^{i-1} [b_j\oplus b_i=1] \]所以只需要统计前缀 0 和 1 的个数,随便更新一下答案就可以了。
标签:前缀,sum,想到,异或,序列,oplus 来源: https://www.cnblogs.com/wwlwQWQ/p/14527919.html