CF2085D.Serval and Kaitenzushi Buffet
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Serval 发现了一家回转寿司自助餐厅。回转寿司意味着餐厅内有一条传送带,将寿司盘依次传送到顾客 Serval 面前。
在这家餐厅中,每盘寿司恰好包含 k 块寿司,第 i 盘寿司的美味值为 di。Serval 将在这家餐厅用餐 n 分钟,且在这 n 分钟内必须吃完他从传送带上拿取的所有寿司块。
设未食用的已拿取寿司块计数器为 r。初始时 r=0。在第 i 分钟(1≤i≤n),只有第 i 盘寿司会被传送到 Serval 面前,他可以执行以下三种操作之一:
- 从传送带上拿取第 i 盘寿司(其美味值为 di),此时 r 增加 k;
- 食用之前从传送带上拿取的 1 块未食用寿司,此时 r 减少 1(注意仅当 r>0 时可执行此操作);
- 或不做任何操作,此时 r 保持不变。
注意在 n 分钟结束后,r 的值必须为 0。
Serval 希望最大化他拿取的所有寿司盘的美味值之和。请帮助他计算这个最大值!
输入格式
每个测试包含多个测试用例。第一行输入测试用例数 t(1≤t≤104)。接下来描述每个测试用例。
每个测试用例的第一行包含两个整数 n 和 k(1≤k<n≤2⋅105)——用餐的总分钟数及每盘寿司的块数。
第二行包含 n 个整数 d1,d2,…,dn(1≤di≤109)——每盘寿司的美味值。
保证所有测试用例的 n 之和不超过 2⋅105。
输出格式
对于每个测试用例,输出一个整数 —— 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 最多能吃完一盘寿司。由于第二盘寿司的美味值 6 是所有盘中最大的,他会在第二分钟拿取该盘,并在接下来的 2 分钟内吃完它。
| 分钟 | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|
| 操作 | — | 拿取 | 食用 | 食用 | — |
| 操作后 r | 0 | 2 | 1 | 0 | 0 |
| 累计美味值 | 0 | 6 | 6 | 6 | 6 |
第二个测试案例中,可以证明最优策略是拿取第一、第三和第六盘寿司。这些盘的美味值之和为 3+4+9=16。
| 分钟 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|
| 操作 | 拿取 | 食用 | 拿取 | 食用 | — | 拿取 | 食用 |
| 操作后 r | 1 | 0 | 1 | 0 | 0 | 1 | 0 |
| 累计美味值 | 3 | 3 | 7 | 7 | 7 | 16 | 16 |
翻译由 DeepSeek R1 完成
输入解题思路,AI测评打分。不知道怎么写?