最新公告
  • 欢迎您光临信息学奥赛网,一个优质的信息学编程题库和信息学编程学习资源专业网站。欢迎加入VIP
  • 数位拆分

    正文概述 陈老师   2026-01-20 15:31:10  

    题目描述

    给定一个长度为 nn 的整数数列 aa,其中 aia_i 表示数列中第 ii 个元素的值。你需要计算以下表达式的值:

    $$\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})$ 实际上是对数列中所有元素两两进行异或运算,并将结果求和。

    输入格式

    第一行包含一个整数 nn1n1051 \le n\le10^5),表示数列的长度。

    第二行包含 nn 个整数 aia_i0ai1090 \le a_i\le10^9),每个整数之间用空格分隔。

    输出格式

    输出一个整数,表示表达式的计算结果。

    样例

    3
    1 2 3
    
    12
    

    提示

    样例1解释

    对于给定的示例输入,数组 a=[1,2,3]a = [1, 2, 3]。我们需要计算以下表达式的值:

    $$(1 \bigoplus 1) + (1 \bigoplus 2) + (1 \bigoplus 3) + (2 \bigoplus 1) + (2 \bigoplus 2) + (2 \bigoplus 3) + (3 \bigoplus 1) + (3 \bigoplus 2) + (3 \bigoplus 3)$$

    计算过程如下:

    0+3+2+3+0+1+2+1+0=120 + 3 + 2 + 3 + 0 + 1 + 2 + 1 + 0 = 12

    因此,输出为 1212

    数据范围

    • 测试点 1101 - 10 满足 1n1031 \le n\le10^30ai1060 \le a_i\le10^6
    • 测试点 112011 - 20 满足 1n1051 \le n\le10^50ai1090 \le a_i\le10^9
    信息学奥赛网,一个优质的信息学奥赛学习资源平台!
    信息学奥赛网 » 数位拆分