AT_agc071_d.[AGC071D] Level K Terms

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

给定整数 N,KN, K 和长度为 NN 的非负整数序列 A=(A1,A2,…,AN)A = (A_1, A_2, \dots, A_N)。
AA 是单调非递减序列,即对于所有 i=1,2,…,N−1i = 1, 2, \dots, N-1,满足 Ai≤Ai+1A_i \leq A_{i+1}。

对于一个长度为 NN 的单调非递减非负整数序列 X=(X1,X2,…,XN)X = (X_1, X_2, \dots, X_N),如果可以通过以下操作(进行 00 次或多次)使得 XX 的所有项变为 00,则称 XX 为「好序列」:

  • 选择满足 1≤i≤N−K+11 \leq i \leq N-K+1 的整数 ii,令 S=Xi+Xi+1+⋯+Xi+K−1S = X_i + X_{i+1} + \dots + X_{i+K-1},将 XX 的第 i,i+1,…,i+K−1i, i+1, \dots, i+K-1 项的值全部替换为 ⌊SK⌋\left\lfloor \frac{S}{K} \right\rfloor。

请找出满足以下所有条件的非负整数序列 B=(B1,B2,…,BN)B = (B_1, B_2, \dots, B_N) 的 ∑i=1NBi\sum_{i=1}^N B_i 的最大值:

  • 对于所有 i=1,2,…,Ni = 1, 2, \dots, N,有 Bi≤AiB_i \leq A_i;
  • BB 是单调非递减序列且是「好序列」。

给定 TT 个测试用例,请对每个用例输出答案。

输入格式

输入从标准输入按以下格式给出:

TT
case1\mathrm{case}_1
⋮\vdots
caseT\mathrm{case}_T

每个测试用例的格式如下:

NN KK
A1A_1 A2A_2 …\dots ANA_N

输出格式

输出 TT 行。第 ii 行对应第 ii 个测试用例的答案。

输入输出样例

  • 输入#1

    4
    4 2
    0 1 2 3
    4 3
    0 1 2 3
    20 5
    1 2 3 3 4 5 6 7 7 8 9 9 11 13 14 16 16 17 18 19
    20 10
    36410986 135774405 160873759 200077345 386257217 408140905 426675713 448759426 470780343 572969565 653981029 693304642 741916215 764524315 768298046 811893935 840607643 847634785 856942510 883746061

    输出#1

    6
    5
    185
    739

说明/提示

约束条件

  • 1≤T≤1051 \leq T \leq 10^5
  • 2≤K≤N≤2×1052 \leq K \leq N \leq 2 \times 10^5
  • 0≤Ai≤1090 \leq A_i \leq 10^9
  • 对于所有 i=1,2,…,N−1i = 1, 2, \dots, N-1,有 Ai≤Ai+1A_i \leq A_{i+1}
  • 输入中的所有值均为整数
  • 单个输入文件中所有测试用例的 NN 总和不超过 2×1052 \times 10^5

样例解释 #1

对于第一个测试用例,AA 本身是「好序列」。例如,通过以下步骤可将所有项变为 00:

  1. 选择 i=3i=3,计算 S=A3+A4=5S = A_3 + A_4 = 5,将第 3,43, 4 项替换为 ⌊52⌋=2\left\lfloor \frac{5}{2} \right\rfloor = 2,得到 A=(0,1,2,2)A = (0, 1, 2, 2)。
  2. 选择 i=2i=2,计算 S=A2+A3=3S = A_2 + A_3 = 3,将第 2,32, 3 项替换为 ⌊32⌋=1\left\lfloor \frac{3}{2} \right\rfloor = 1,得到 A=(0,1,1,2)A = (0, 1, 1, 2)。
  3. 选择 i=3i=3,计算 S=A3+A4=3S = A_3 + A_4 = 3,将第 3,43, 4 项替换为 ⌊32⌋=1\left\lfloor \frac{3}{2} \right\rfloor = 1,得到 A=(0,1,1,1)A = (0, 1, 1, 1)。
  4. 选择 i=1i=1,计算 S=A1+A2=1S = A_1 + A_2 = 1,将第 1,21, 2 项替换为 ⌊12⌋=0\left\lfloor \frac{1}{2} \right\rfloor = 0,得到 A=(0,0,1,1)A = (0, 0, 1, 1)。
  5. 选择 i=2i=2,计算 S=A2+A3=1S = A_2 + A_3 = 1,将第 2,32, 3 项替换为 ⌊12⌋=0\left\lfloor \frac{1}{2} \right\rfloor = 0,得到 A=(0,0,0,1)A = (0, 0, 0, 1)。
  6. 选择 i=3i=3,计算 S=A3+A4=1S = A_3 + A_4 = 1,将第 3,43, 4 项替换为 ⌊12⌋=0\left\lfloor \frac{1}{2} \right\rfloor = 0,得到 A=(0,0,0,0)A = (0, 0, 0, 0)。
    因此,取 B=AB = A 可得到最大值 0+1+2+3=60 + 1 + 2 + 3 = 6。

对于第二个测试用例,AA 不是「好序列」。取 B=(0,0,2,3)B = (0, 0, 2, 3) 时 BB 是「好序列」且满足条件。

翻译由 DeepSeek R1 完成

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

首页