B. 点的幂(power)

    传统题 文件IO:power 1000ms 256MiB

点的幂(power)

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

读写要求

本题采用文件读写,请在提交代码时使用正确的文件读写方式,否则会导致 RE

输入:power.in

输出:power.out

题目描述

给定 nn 个整数坐标点 x1,,xnx_1,\dots,x_n,它们都位于数轴上。

对于某个整数 ss,我们构造线段 [s,x1][s,x_1][s,x2][s,x_2]\dots[s,xn][s,x_n]。注意,如果 xi<sx_i < s,那么线段为 [xi,s][x_i,s]。线段 [a,b][a,b] 覆盖所有整数点 a,a+1,a+2,,ba,a+1,a+2,\dots,b

我们定义点 pp 的“幂”为有多少条线段与坐标为 pp 的点相交,用 fpf_p 表示。

你的任务是,对于每个 s{x1,,xn}s \in \{x_1,\dots,x_n\},计算 p=1109fp\sum\limits_{p=1}^{10^9}f_p,即所有从 1110910^9 的整数点的 fpf_p 之和。

例如,若初始坐标为 [1,2,5,7,1][1,2,5,7,1],选择 s=5s=5,则线段为:[1,5][1,5][2,5][2,5][5,5][5,5][5,7][5,7][1,5][1,5]。各点的幂为:$f_1=2, f_2=3, f_3=3, f_4=3, f_5=5, f_6=1, f_7=1, f_8=0, \dots, f_{10^9}=0$。它们的和为 2+3+3+3+5+1+1=182+3+3+3+5+1+1=18

输入格式

第一行包含一个整数 tt1t1041\le t\le 10^4),表示测试用例数量。

每个测试用例的第一行包含一个整数 nn1n21051 \le n \le 2\cdot 10^5),表示点的数量。

第二行包含 nn 个整数 x1,x2,,xnx_1,x_2,\dots,x_n1xi1091 \le x_i \le 10^9),表示这些点的坐标。

保证所有测试用例中 nn 的总和不超过 21052\cdot 10^5

输出格式

对于每个测试用例,输出 nn 个整数,第 ii 个整数表示当 s=xis=x_i 时所有点幂的总和。

输入输出样例

3
3
1 4 3
5
1 2 5 7 1
4
1 10 100 1000
8 7 6
16 15 18 24 16
1111 1093 1093 2893

说明/提示

在第一个测试用例中,我们首先选择 s=x1=1s=x_1=1,则形成的线段为:[1,1][1,1][1,4][1,4][1,3][1,3]

各点的幂为:f1=3,f2=2,f3=2,f4=1,f5=0,f_1=3, f_2=2, f_3=2, f_4=1, f_5=0,\dots。所有点幂的和为 3+2+2+1+0++0=83+2+2+1+0+\dots+0=8

然后选择 s=x2=4s=x_2=4,线段为:[1,4][1,4][4,4][4,4][3,4][3,4],各点幂为 f1=1,f2=1,f3=2,f4=3f_1=1, f_2=1, f_3=2, f_4=3

最后选择 s=x3=3s=x_3=3,线段为:[1,3][1,3][3,4][3,4][3,3][3,3],各点幂为 f1=1,f2=1,f3=3,f4=1f_1=1, f_2=1, f_3=3, f_4=1

周赛#1030(div2)

未参加
状态
已结束
规则
IOI
题目
5
开始于
2026-6-13 19:00
结束于
2026-6-13 20:30
持续时间
1.5 小时
主持人
参赛人数
19