数位拆分
提交数: 4, 通过率: 100%, 平均分: 100
题目描述:
给定一个长度为 n 的整数数列 a,其中 ai 表示数列中第 i 个元素的值。你需要计算以下表达式的值:
\( \sum_{i=1}^{n}\sum_{j=1}^{n} (a_i \bigoplus a_j) \)
其中,⨁ 表示按位异或运算。
请注意, \( \sum_{i=1}^{n}\sum_{j=1}^{n} (a_i \bigoplus a_j) \) 实际上是对数列中所有元素两两进行异或运算,并将结果求和。
输入格式:
第一行包含一个整数 n(1≤n≤1e5 ),表示数列的长度。
第二行包含 n 个整数 ai(0≤ai ≤1e9 ),每个整数之间用空格分隔。
输出格式:
输出一个整数,表示表达式的计算结果。
数据范围:
样例1解释
对于给定的示例输入,数组 a=[1,2,3]。我们需要计算以下表达式的值:
(1⨁1)+(1⨁2)+(1⨁3)+(2⨁1)+(2⨁2)+(2⨁3)+(3⨁1)+(3⨁2)+(3⨁3)
计算过程如下:
0+3+2+3+0+1+2+1+0=12
因此,输出为 12。
测试点 1−10 满足 1≤n≤1e3,0≤ai ≤1e6。
测试点11−20 满足1≤n≤1e5,0≤ai ≤1e9。
样例输入:
3 1 2 3
样例输出:
12时间限制: 1000ms
空间限制: 256MB