这里下标从 0 开始。
首先考虑两个元素对 ai,aj(i<j),在 (i+1)×(n−j) 个子数组中有贡献,最终我们是将所有异或和都加起来。
我们对于两个数异或值的每个二进制位单独来考虑。
枚举 ai,对于 ai 的第 k 个二进制位,对于答案有贡献,必然是
研究员小蓝得到一串长度为 n 的信号数值序列,编号从 1 到 n。对于一个连续子段,他定义其“扰动值”为该子段内所有不同位置对 (i,j)(i<j)的信号值按位异或之和,即 ∑i<j(ai⊕aj)。现在他想知道,所有可能连续子段的扰动值之和是多少。由于答案可能非常大,请你输出结果对 109+7 取模后的值。
序列长度 n 不超过 105,每个信号值均为不超过 109 的正整数。
第一行包含一个整数 n,表示信号个数。 第二行包含 n 个整数,依次表示每个信号的数值。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.