#青训营笔记创作活动# 问题描述
小C遇到了 nn 个怪物,第 ii 个怪物的战斗力为 aiai​,而小C的初始战斗力为 00。他需要依次与这些怪物战斗。战斗时的规则如下:

如果小C的战斗力 xx 小于怪物的战斗力 aiai​,小C会触发被动技能 "小C不怕困难",将自己的战斗力提升至 aiai​,并战胜这个怪物,同时小C的勇气值增加 ai−xai​−x。
如果小C的战斗力 xx 大于或等于怪物的战斗力 aiai​,他会直接战胜这个怪物,战斗结束后,小C的战斗力会降低至 aiai​。
小C可以自由决定与怪物战斗的顺序。他想知道,在打败所有怪物后,自己能够累计提升的勇气值最大是多少。

测试样例
样例1:

输入:n = 2 ,a = [1, 2]
输出:2

样例2:

输入:n = 3 ,a = [1, 2, 2]
输出:3

样例3:

输入:n = 4 ,a = [3, 6, 2, 8]
输出:12

题解:
看到提升勇气值最大,开始觉得应该用动态规划,但是深入一想,要想使勇气值最大,就要实现自己的力量尽量小,打的怪物力量尽量大,并且通过力量最小的怪物刷新自己的力量值就能使力量差值尽量大,算是贪心的算法,但是我没证明其正确性就直接使用了,幸运的是AC了。
展开
评论