CF1857E Power of Points
题目描述
给定 $n$ 个整数坐标点 $x_1,\dots,x_n$,它们都位于数轴上。
对于某个整数 $s$,我们构造线段 $[s,x_1]$、$[s,x_2]$、$\dots$、$[s,x_n]$。注意,如果 $x_i < s$,那么线段为 $[x_i,s]$。线段 $[a,b]$ 覆盖所有整数点 $a,a+1,a+2,\dots,b$。
我们定义点 $p$ 的“幂”为有多少条线段与坐标为 $p$ 的点相交,用 $f_p$ 表示。
你的任务是,对于每个 $s \in \{x_1,\dots,x_n\}$,计算 $\sum\limits_{p=1}^{10^9}f_p$,即所有从 $1$ 到 $10^9$ 的整数点的 $f_p$ 之和。
例如,若初始坐标为 $[1,2,5,7,1]$,选择 $s=5$,则线段为:$[1,5]$、$[2,5]$、$[5,5]$、$[5,7]$、$[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=18$。
输入格式
第一行包含一个整数 $t$($1\le t\le 10^4$),表示测试用例数量。
每个测试用例的第一行包含一个整数 $n$($1 \le n \le 2\cdot 10^5$),表示点的数量。
第二行包含 $n$ 个整数 $x_1,x_2,\dots,x_n$($1 \le x_i \le 10^9$),表示这些点的坐标。
保证所有测试用例中 $n$ 的总和不超过 $2\cdot 10^5$。
输出格式
对于每个测试用例,输出 $n$ 个整数,第 $i$ 个整数表示当 $s=x_i$ 时所有点幂的总和。
说明/提示
在第一个测试用例中,我们首先选择 $s=x_1=1$,则形成的线段为:$[1,1]$、$[1,4]$、$[1,3]$。
各点的幂为:$f_1=3, f_2=2, f_3=2, f_4=1, f_5=0,\dots$。所有点幂的和为 $3+2+2+1+0+\dots+0=8$。
然后选择 $s=x_2=4$,线段为:$[1,4]$、$[4,4]$、$[3,4]$,各点幂为 $f_1=1, f_2=1, f_3=2, f_4=3$。
最后选择 $s=x_3=3$,线段为:$[1,3]$、$[3,4]$、$[3,3]$,各点幂为 $f_1=1, f_2=1, f_3=3, f_4=1$。
由 ChatGPT 4.1 翻译