考虑暴力枚举,第一个技能如果释放,肯定应该先于第二个技能,这样效果至少不差甚至更优
可以排序后枚举每一个怪物的血量,使用第一个技能让当前怪物血量死亡(其前面的怪物也肯定死亡,血量都比这个怪物少),后面的怪物都使用第二个技能,最终得出的最小花费就是答案。
时间复杂度O(nlogn)
小红正在玩一个游戏,游戏中n个怪物,血量上限分别为hi,初始时所有怪物的血量都等于它们的血量上限,当怪物的血量小于或等于0时,怪物将会死亡。 小红有两个技能 第一个技能为旋风斩,消耗一点法力,对所有怪物造成1点伤害 第二个技能为斩杀,消耗两点法力,杀死一个已受伤的怪物(当前怪物血量小于怪物的血量上限)。 两个技能都没有使用次数限制,小红想知道她最少需要消耗多少点法力才能杀死所有怪物。
第一行输入一个整数 n(2≤n≤105)表示怪物数量。 第二行输入 n个整数hi(1≤hi≤109)表示怪物的血量上限
输出一个整数表示答案,
输入
3
1 1 4
输出
3
说明
首先使用旋风斩,怪物的血量变成:0 0 3,第1、2个怪物死亡。
再对第三个怪物使用斩杀,第3个怪物死亡。消耗的法力值为1+2=3。