CF2085D.Serval and Kaitenzushi Buffet

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

Serval 发现了一家回转寿司自助餐厅。回转寿司意味着餐厅内有一条传送带,将寿司盘依次传送到顾客 Serval 面前。

在这家餐厅中,每盘寿司恰好包含 kk 块寿司,第 ii 盘寿司的美味值为 did_i。Serval 将在这家餐厅用餐 nn 分钟,且在这 nn 分钟内必须吃完他从传送带上拿取的所有寿司块。

设未食用的已拿取寿司块计数器为 rr。初始时 r=0r = 0。在第 ii 分钟(1≤i≤n1 \leq i \leq n),只有第 ii 盘寿司会被传送到 Serval 面前,他可以执行以下三种操作之一:

  • 从传送带上拿取第 ii 盘寿司(其美味值为 did_i),此时 rr 增加 kk;
  • 食用之前从传送带上拿取的 1 块未食用寿司,此时 rr 减少 11(注意仅当 r>0r > 0 时可执行此操作);
  • 或不做任何操作,此时 rr 保持不变。

注意在 nn 分钟结束后,rr 的值必须为 00。

Serval 希望最大化他拿取的所有寿司盘的美味值之和。请帮助他计算这个最大值!

输入格式

每个测试包含多个测试用例。第一行输入测试用例数 tt(1≤t≤1041 \le t \le 10^4)。接下来描述每个测试用例。

每个测试用例的第一行包含两个整数 nn 和 kk(1≤k<n≤2⋅1051 \leq k < n \leq 2 \cdot 10^5)——用餐的总分钟数及每盘寿司的块数。

第二行包含 nn 个整数 d1,d2,…,dnd_1, d_2, \ldots, d_n(1≤di≤1091 \leq d_i \leq 10^9)——每盘寿司的美味值。

保证所有测试用例的 nn 之和不超过 2⋅1052 \cdot 10^5。

输出格式

对于每个测试用例,输出一个整数 —— Serval 拿取的所有寿司盘美味值的最大可能和。

输入输出样例

  • 输入#1

    5
    5 2
    3 6 4 1 2
    7 1
    3 1 4 1 5 9 2
    4 3
    4 3 2 1
    6 2
    1 3 5 2 4 6
    6 1
    1000000000 1 1000000000 1 1000000000 1

    输出#1

    6
    16
    4
    6
    3000000000

说明/提示

第一个测试案例中,可以证明 Serval 最多能吃完一盘寿司。由于第二盘寿司的美味值 66 是所有盘中最大的,他会在第二分钟拿取该盘,并在接下来的 22 分钟内吃完它。

分钟 1 2 3 4 5
操作 — 拿取 食用 食用 —
操作后 rr 0 2 1 0 0
累计美味值 0 6 6 6 6

第二个测试案例中,可以证明最优策略是拿取第一、第三和第六盘寿司。这些盘的美味值之和为 3+4+9=163 + 4 + 9 = 16。

分钟 1 2 3 4 5 6 7
操作 拿取 食用 拿取 食用 — 拿取 食用
操作后 rr 1 0 1 0 0 1 0
累计美味值 3 3 7 7 7 16 16

翻译由 DeepSeek R1 完成

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

首页