首先发现如果 i 和 j 存在相同的位数(这里指的是二进制下的)。那么无论如和 i \oplus j 的这一位都是零,肯定无法 \ge j。所以对于 j,位数一定小于 i。而后我们再往下考虑下一个一,如果这一位填了一,那么之后的所有都可以随便填,假如这是第 x 位,那么贡献为 2^x,之后也是,所以一个数的贡献是 i - 2^{high(i)}。
2\sum_{i=1}^n\big(i-2^{high(i)}\big)
记 hp(i)=2^{high(i)}。
2\sum_{i=1}^n\big(i- hp(i)\big)
=2\Big(\sum_{i=1}^n i \;-\; \sum_{i=1}^n hp(i)\Big).