问题2319--qlk打怪

2319: qlk打怪

[命题人 : ]
时间限制 : 1 sec  内存限制 : 128 MB

提交

题目描述

在电脑游戏中,qlk要与 n 个怪物作战。编号为 i 的怪物有 a_i 点健康值,所有 a_i 都是整数。当怪物至少有 1 点健康值时,它就是活着的。

您可以施放两种类型的法术:

  1. 对你选择的任何一只活着的怪物造成 1 伤害。

  2. 对所有活着的怪物造成 1 点伤害。如果至少有一只怪物因该行动而死亡(最终健康值为 0 ),则重复该行动(每次至少有一只怪物死亡时,重复该行动)。

对怪物造成 1 伤害会使其生命值减少 1 。

类型 1 的法术可以施放任意次数,而类型 2 的法术在游戏中最多只能施放一次。

要杀死所有怪物,施放 1 类法术的最少次数是多少?

输入

每个测试包含多个测试用例。第一行包含测试用例的数量 t ( 1 ≤ t ≤ 10^4 )。测试用例说明如下。

每个测试用例由两行组成。第一行包含一个整数 n ( 1 ≤ n ≤ 2 * 10^5 )--怪物数量。

第二行包含 n 个整数 a_1, a_2, ..., a_n ( 1 ≤ $a_i$ ≤ n )--怪物的健康值。

输出

对于每个测试用例,打印一个整数 - qlk需要施放类型 1 的法术杀死所有怪物的最小次数。

样例输入 Copy

2
3
3 1 2
6
4 1 5 4 1 1

样例输出 Copy

0
4

提示

在第一个测试案例中,怪物的初始生命值为 [3, 1, 2] 。只需施放 2 类法术即可:

  • 怪物的生命值变为 [2, 0, 1] 。由于 $2$ 号怪物死亡,因此重复施法。

  • 怪物的生命值变为 [1, 0, 0] 。由于 3 号怪物死亡,咒语重复。

  • 怪物的生命值变为 [0, 0, 0] 。由于 1 号怪物死亡,咒语重复。

  • 怪物的生命值变为 [0, 0, 0] 。

由于可以完全不使用类型 1 的咒语,因此答案为 0 。

在第二个测试案例中,怪物的初始健康值为 [4, 1, 5, 4, 1, 1] 。下面是其中一个最佳行动序列:

  • 使用类型 1 的法术,对编号为 1 的怪物造成 1 伤害。怪物的生命值变为 [3, 1, 5, 4, 1, 1] 。

  • 使用类型 1 的咒语,对编号为 4 的怪物造成 1 伤害。怪物的生命值变为 [3, 1, 5, 3, 1, 1] 。

  • 使用类型1的咒语,再次对编号 4 的怪物造成 1 伤害。怪物的生命值变为 [3, 1, 5, 2, 1, 1] 。

  • 使用类型 2 的咒语:

    • 怪物的生命值变为 [2, 0, 4, 1, 0, 0] 。由于编号为 2 、 5 和 6 的怪物死亡,因此重复施法。

    • 怪物的生命值变为 [1, 0, 3, 0, 0, 0] 。由于 4 号怪物死亡,咒语重复。

    • 怪物的生命值变为 [0, 0, 2, 0, 0, 0] 。由于 1 号怪物死亡,咒语重复。

    • 怪物的生命值变为 [0, 0, 1, 0, 0, 0] 。

  • 使用类型 1 的咒语,对编号 3 的怪物造成 1 伤害。怪物的生命值变为 [0, 0, 0, 0, 0, 0] 。

类型 1 的法术总共施放 4 次。可以证明这是可能的最小次数。

来源/分类