CF2124G.Maximise Sum

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

本题与 B 题不同。在本题中,对于每个整数 xx,0≤x≤n−10 \le x \le n-1,你需要输出所有操作代价至少为 xx 时,前缀最小值之和的最大值。

给定一个长度为 nn 的数组 aa,其中 0≤ai≤n0 \le a_i \le n。你最多可以进行一次如下操作:

  • 选择两个下标 ii 和 jj,满足 i<ji < j。将 ai:=ai+aja_i := a_i + a_j,然后将 aj=0a_j = 0。

一次操作的代价为 j−ij-i。如果不进行操作,则代价为 00。

对于每个整数 xx,0≤x≤n−10 \le x \le n-1,输出所有操作代价至少为 xx 时,min⁡(a1)+min⁡(a1,a2)+…+min⁡(a1,a2,…,an)\min(a_1) + \min(a_1,a_2) + \ldots + \min(a_1, a_2, \ldots, a_n) 的最大可能值。

输入格式

每组测试数据包含多组测试用例。第一行包含整数 tt(1≤t≤1041 \le t \le 10^4),表示测试用例的数量。

每个测试用例的第一行包含一个整数 nn(2≤n≤1062 \leq n \leq 10^6),表示数组 aa 的长度。

接下来一行包含 nn 个用空格分隔的整数 a1,a2,…,ana_1, a_2, \ldots, a_n(0≤ai≤n0 \le a_i \le n),表示数组 aa。

保证所有测试用例中 nn 的总和不超过 10610^6。

输出格式

对于每个测试用例,输出 nn 个整数,表示对于每个 ii,所有操作代价至少为 i−1i-1 时的最大答案。每个测试用例输出一行,数之间用空格分隔。

输入输出样例

  • 输入#1

    6
    2
    1 2
    4
    2 3 1 4
    2
    1 0
    5
    5 5 0 5 5
    5
    4 1 3 3 1
    10
    7 4 7 0 8 7 5 0 2 1

    输出#1

    3 3 
    10 10 10 10 
    1 1 
    20 20 20 15 15 
    11 11 11 10 8 
    27 27 27 27 23 23 20 19 17 16

说明/提示

我们来分析第五个测试用例:

  • x=0,1,2x=0,1,2:最优操作是 i=2i=2,j=4j=4,代价为 22。此时数组 aa 变为 [4,4,3,0,1][4,4,3,0,1],得分为 1111。
  • x=3x=3:最优操作是 i=2i=2,j=5j=5,代价为 33。此时数组 aa 变为 [4,2,3,3,0][4,2,3,3,0],得分为 1010。
  • x=4x=4:最优(且唯一)操作是 i=1i=1,j=5j=5,代价为 44。此时数组 aa 变为 [5,1,3,3,0][5,1,3,3,0],得分为 88。

由 ChatGPT 4.1 翻译

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

首页