这个东西求解答 啊是的

Monocarp正在玩电脑游戏,它杀了n个怪物,每一个怪物都有对应的健康度。

Monocarp的角色有两个咒语,他可以任意多次(可能是零)释放:

精确选择两个活着的怪物,并将其生命值降低1
选择一个怪物并杀死它。
当怪物的生命值为0时,它就会死亡。

为了杀死所有怪物,Monocarp应该执行的最低施法次数是多少?

输入
第一行包含一个整数t(1≤t≤10^4)—测试用例的数量。

每个测试用例的第一行包含一个整数n(1≤n≤100) —怪物的数量。

第二行包含n个整数,h1,h2,,,(1≤hi≤100) —每个怪物的健康。

输出
对于每个测试用例,打印一个整数——为了杀死所有怪物,Monocap应该执行的最小法术施放次数。

输入数据 1
3
4
1 2 1 2
3
2 4 2
5
1 2 3 4 5

输出数据 1
3
3
5

参考GPT和自己的思路:对于每组输入数据,首先将健康度按从小到大排序。然后考虑精确选择两个活着的怪物的操作,最终会使得这两个怪物的健康度相同,而且健康度为最小的两个怪物已经死亡。因此,在排序后,每次可以取健康度最小的两个怪物(若只剩一个怪物则直接杀死),进行一次操作,直到剩余的所有怪物健康度相同,然后直接杀死它们即可。最终的操作次数就是进行精确选择两个活着的怪物操作的次数加上进行单一杀死操作的次数。

时间复杂度为 O(nlogn)。