CF1466E.Apollo versus Pan

普及+/提高

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Only a few know that Pan and Apollo weren't only battling for the title of the GOAT musician. A few millenniums later, they also challenged each other in math (or rather in fast calculations). The task they got to solve is the following:

Let x1,x2,…,xnx_1, x_2, \ldots, x_n be the sequence of nn non-negative integers. Find this value: $$\sum_{i=1}^n \sum_{j=1}^n \sum_{k=1}^n (x_i \, \& \, x_j) \cdot (x_j \, | \, x_k)$$

Here &\& denotes the bitwise and, and ∣| denotes the bitwise or.

Pan and Apollo could solve this in a few seconds. Can you do it too? For convenience, find the answer modulo 109+710^9 + 7.

只有少数人知道,潘和阿波罗不仅为“史上最伟大音乐家”的头衔而战。几千年后,他们还在数学(或者说快速计算)领域一较高下。他们需要解决的问题如下:

设 x1,x2,…,xnx_1, x_2, \ldots, x_n 是一个由 nn 个非负整数组成的序列。求以下表达式的值:

∑i=1n∑j=1n∑k=1n(xi & xj)⋅(xj ∣ xk)\sum_{i=1}^n \sum_{j=1}^n \sum_{k=1}^n (x_i \, \& \, x_j) \cdot (x_j \, | \, x_k)

其中 &\& 表示按位与运算,∣| 表示按位或运算。

潘和阿波罗能在几秒钟内解出此题。你也能做到吗?为方便起见,请将答案对 109+710^9 + 7 取模。

输入格式

The first line of the input contains a single integer tt (1≤t≤1 0001 \leq t \leq 1\,000) denoting the number of test cases, then tt test cases follow.

The first line of each test case consists of a single integer nn (1≤n≤5⋅1051 \leq n \leq 5 \cdot 10^5), the length of the sequence. The second one contains nn non-negative integers x1,x2,…,xnx_1, x_2, \ldots, x_n (0≤xi<2600 \leq x_i \lt 2^{60}), elements of the sequence.

The sum of nn over all test cases will not exceed 5⋅1055 \cdot 10^5.

输入的第一行包含一个整数 tt(1≤t≤1 0001 \leq t \leq 1\,000),表示测试用例的数量,随后是 tt 个测试用例。

每个测试用例的第一行包含一个整数 nn(1≤n≤5⋅1051 \leq n \leq 5 \cdot 10^5),表示序列的长度;第二行包含 nn 个非负整数 x1,x2,…,xnx_1, x_2, \ldots, x_n(0≤xi<2600 \leq x_i \lt 2^{60}),即该序列的元素。

所有测试用例的 nn 值之和不超过 5⋅1055 \cdot 10^5。

输出格式

Print tt lines. The ii-th line should contain the answer to the ii-th text case.

输出 tt 行。第 ii 行应包含第 ii 个测试用例的答案。

输入输出样例

  • 输入#1

    8
    2
    1 7
    3
    1 2 4
    4
    5 5 5 5
    5
    6 2 2 1 0
    1
    0
    1
    1
    6
    1 12 123 1234 12345 123456
    5
    536870912 536870911 1152921504606846975 1152921504606846974 1152921504606846973

    输出#1

    128
    91
    1600
    505
    0
    1
    502811676
    264880351

输入解题思路,AI测评打分。不知道怎么写?

首页