#P16632. [GKS 2017 #F] Dance Battle

    ID: 18988 远端评测题 1000ms 1024MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>贪心2017双指针 two-pointerGoogle Kick Start

[GKS 2017 #F] Dance Battle

题目描述

你的团队即将在斗舞中证明自己!最初,你的团队有 EE 点能量,以及 00 点荣誉。有 NN 个对手团队你必须面对;这些团队按顺序排列,第 ii 个团队的舞技为 SiS_i

在每一轮战斗中,你将面对队列中的下一个对手团队,并且可以执行以下操作之一:

  1. 斗舞:你的团队损失等于对手团队舞技的能量,该对手团队不会回到队列中。你获得 11 点荣誉。如果此操作会使你的能量降至 00 或以下,则不能执行。
  2. 拖延:你找借口(“我们的鞋带还没系好!”),对手团队回到队列末尾。你的能量和荣誉不变。
  3. 休战:你与对手团队宣布休战,该对手团队不会回到队列中。你的能量和荣誉不变。
  4. 招募:你将对手团队招募到己方队伍中,该对手团队不会回到队列中。你的团队获得等于对手团队舞技的能量,但你失去 11 点荣誉。如果此操作会使你的荣誉降至 00 以下,则不能执行。

当队列中没有对手团队时,战斗结束。如果你做出最优决策,战斗结束时你能获得的最大荣誉是多少?

输入格式

输入的第一行给出测试用例的数量 TT。接下来有 TT 个测试用例;每个测试用例由两行组成。第一行包含两个整数 EENN:你团队的能量以及对手团队的数量。第二行包含 NN 个整数 SiS_i;其中第 ii 个整数表示战斗开始时队列中第 ii 个对手团队的舞技。

输出格式

对于每个测试用例,输出一行,格式为 Case #x: y,其中 xx 是测试用例编号(从 11 开始),yy 是战斗结束时你能获得的最大荣誉。

2
100 1
100
10 3
20 3 15
Case #1: 0
Case #2: 1

提示

在样例 #1 中,只有一个对手团队。你无法与他们斗舞,因为那样会使你的能量降至 00;你也无法招募他们,因为那样会使你的荣誉降至 00 以下。拖延也无济于事,因此唯一的选择是宣布休战。你最终获得 00 荣誉。

在样例 #2 中,一种最优策略是:

  1. 对第一个对手团队拖延。他们回到队列末尾。
  2. 与第二个对手团队斗舞。你的能量降至 77,荣誉增至 11
  3. 招募第三个对手团队。你的能量增至 2222,荣誉降至 00
  4. 与第一个对手团队(此时又回到队首)斗舞。你的能量降至 22,荣誉增至 11

你最终获得 11 点荣誉。

限制条件

1T1001 \le T \le 100

1E1061 \le E \le 10^6

对于所有 ii1Si1061 \le S_i \le 10^6

小数据集(测试集 1 – 可见)

1N51 \le N \le 5

大数据集(测试集 2 – 隐藏)

1N10001 \le N \le 1000

翻译由 DeepSeek V4 Pro 完成