CF2029I.Variance Challenge

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

Kevin 最近学会了方差的定义。对于一个长度为 nn 的数组 aa,其方差定义如下:

  • 令 x=1n∑i=1naix = \dfrac{1}{n}\displaystyle\sum_{i=1}^n a_i,即 xx 是数组 aa 的平均值;
  • 那么,aa 的方差为 V(a)=1n∑i=1n(ai−x)2V(a) = \frac{1}{n}\sum_{i=1}^n (a_i - x)^2。

现在,Kevin 给你一个由 nn 个整数构成的数组 aa,以及一个整数 kk。你可以对 aa 执行如下操作:

  • 选择一个区间 [l,r][l, r](1≤l≤r≤n1 \le l \le r \le n),然后对于每个 l≤i≤rl \le i \le r,将 aia_i 增加 kk。

对于每个 1≤p≤m1 \le p \le m,你需要分别独立地求出恰好执行 pp 次操作后,数组 aa 的最小可能方差。

为简化问题,你只需要输出答案乘以 n2n^2 的结果。可以保证结果总是整数。

输入格式

每个测试包含多组测试用例。输入的第一行为一个整数 tt(1≤t≤1001 \le t \le 100)——表示测试用例的数量。接下来是每组测试用例的描述。

每组测试用例的第一行为三个整数 nn、mm 和 kk(1≤n,m≤50001 \le n, m \le 5000,n⋅m≤2⋅104\color{red}{n \cdot m \le 2 \cdot 10^4},1≤k≤1051 \le k \le 10^5)——数组 aa 的长度、最多操作次数以及每次增加的数。

第二行为 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(1≤ai≤1051 \le a_i \le 10^5)——数组 aa 的元素。

保证所有测试用例中 n⋅mn \cdot m 的总和不超过 2⋅1042 \cdot 10^4。

输出格式

对于每组测试用例,输出 mm 个整数,依次表示恰好执行 pp 次操作后数组 aa 的最小可能方差乘以 n2n^2 的结果(p=1,2,…,mp = 1, 2, \ldots, m)。

输入输出样例

  • 输入#1

    9
    3 2 1
    1 2 2
    3 2 2
    1 2 2
    10 2 1
    10 1 1 1 1 10 1 1 1 1
    6 8 2
    1 1 4 5 1 3
    8 8 7
    20 43 24 2 4 3 20 43
    8 8 3
    20 43 24 2 4 3 20 43
    10 12 1
    5 3 3 5 4 1 8 1 1 1
    13 10 100000
    1 2 3 4 5 6 7 8 9 10 11 5 4
    10 5 10000
    2308 9982 4435 3310 100000 9 7 8100 1919 100000

    输出#1

    0 0
    2 2
    1161 1024
    53 21 21 5 5 5 5 5
    10608 6912 4448 3104 1991 1312 535 304
    13248 11184 9375 7815 6447 5319 4383 3687
    385 316 269 224 181 156 124 101 80 56 41 29
    1486 1486 1486 1486 1486 1486 1486 1486 1486 1486
    134618047140 119919447140 107020847140 93922247140 82623647140

说明/提示

在第一个测试用例中:

  • 对于 p=1p = 1,你可以在区间 [1,1][1, 1] 上操作,将 aa 从 [1,2,2][1, 2, 2] 变为 [2,2,2][2, 2, 2]。此时所有元素都相等,方差为 00。
  • 对于 p=2p = 2,你可以依次在区间 [1,3][1, 3] 和 [1,1][1, 1] 上操作,将 aa 从 [1,2,2][1, 2, 2] 变为 [2,3,3][2, 3, 3],再变为 [3,3,3][3, 3, 3]。此时所有元素都相等,方差为 00。

在第二个测试用例中,一些可能的最优选择为:

  • p=1p=1:[1,‾ 2,2]→[3,2,2][\underline{1,}\,2,2] \to [3,2,2];
  • p=2p=2:[1,2,2‾]→[1,‾ 4,4]→[3,4,4][1,\underline{2,2}] \to [\underline{1,}\,4,4] \to [3,4,4]。

在第三个测试用例中,一些可能的最优选择为:

  • p=1p=1:[10,1,1,1,1,10,1,1,1,1‾]→[10,2,2,2,2,11,2,2,2,2][10,\underline{1,1,1,1,10,1,1,1,1}] \to [10,2,2,2,2,11,2,2,2,2];
  • p=2p=2:[10,1,1,1,1,10,1,1,1,1‾]→[10,1,1,1,1‾,10,2,2,2,2]→[10,2,2,2,2,10,2,2,2,2][10,1,1,1,1,10,\underline{1,1,1,1}] \to [10,\underline{1,1,1,1},10,2,2,2,2] \to [10,2,2,2,2,10,2,2,2,2]。

在第八个测试用例中,对于所有 pp,最优选择都是每次对整个数组操作。

由 ChatGPT 4.1 翻译

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

首页