#P16632. [GKS 2017 #F] Dance Battle
[GKS 2017 #F] Dance Battle
题目描述
你的团队即将在斗舞中证明自己!最初,你的团队有 点能量,以及 点荣誉。有 个对手团队你必须面对;这些团队按顺序排列,第 个团队的舞技为 。
在每一轮战斗中,你将面对队列中的下一个对手团队,并且可以执行以下操作之一:
- 斗舞:你的团队损失等于对手团队舞技的能量,该对手团队不会回到队列中。你获得 点荣誉。如果此操作会使你的能量降至 或以下,则不能执行。
- 拖延:你找借口(“我们的鞋带还没系好!”),对手团队回到队列末尾。你的能量和荣誉不变。
- 休战:你与对手团队宣布休战,该对手团队不会回到队列中。你的能量和荣誉不变。
- 招募:你将对手团队招募到己方队伍中,该对手团队不会回到队列中。你的团队获得等于对手团队舞技的能量,但你失去 点荣誉。如果此操作会使你的荣誉降至 以下,则不能执行。
当队列中没有对手团队时,战斗结束。如果你做出最优决策,战斗结束时你能获得的最大荣誉是多少?
输入格式
输入的第一行给出测试用例的数量 。接下来有 个测试用例;每个测试用例由两行组成。第一行包含两个整数 和 :你团队的能量以及对手团队的数量。第二行包含 个整数 ;其中第 个整数表示战斗开始时队列中第 个对手团队的舞技。
输出格式
对于每个测试用例,输出一行,格式为 Case #x: y,其中 是测试用例编号(从 开始), 是战斗结束时你能获得的最大荣誉。
2
100 1
100
10 3
20 3 15
Case #1: 0
Case #2: 1
提示
在样例 #1 中,只有一个对手团队。你无法与他们斗舞,因为那样会使你的能量降至 ;你也无法招募他们,因为那样会使你的荣誉降至 以下。拖延也无济于事,因此唯一的选择是宣布休战。你最终获得 荣誉。
在样例 #2 中,一种最优策略是:
- 对第一个对手团队拖延。他们回到队列末尾。
- 与第二个对手团队斗舞。你的能量降至 ,荣誉增至 。
- 招募第三个对手团队。你的能量增至 ,荣誉降至 。
- 与第一个对手团队(此时又回到队首)斗舞。你的能量降至 ,荣誉增至 。
你最终获得 点荣誉。
限制条件
。
。
对于所有 ,。
小数据集(测试集 1 – 可见)
。
大数据集(测试集 2 – 隐藏)
。
翻译由 DeepSeek V4 Pro 完成