元素a[i]对最终答案的总贡献为:a[i]在所有包含它的连续子数组中与其他元素构成的所有可能数对(a[i], a[j])的异或和。从0到n-1遍历a[i],累加每一个a[i]的贡献,就得到最终答案。遍历单个a[i]的所有包含数组需要O(n),每个数组内部计算数对异或和需要O(n^2),遍历整个a数组需要O(n),总复杂度为O(n^4),显然不行。但是通过对异或计算进行优化,可以将总复杂度降低为O(n) * O(log(max(a[i]))),满足题目要求。 对异或和的计算进行优化:注意到计算异或和时每一个二进制位是独立的,而每一位的值只有0和1两种。以第0位为例,考虑数组a中每一位元素的第0个...