C-Monsters(easy version)
![](https://i-blog.csdnimg.cn/blog_migrate/6ee33bb9d402267e5a6c9bd1f6255303.png)
题目大意是说有n个怪物,代号为i的怪物血量为ai。
你有两种方式伤害怪物,一是直接砍怪物一刀让其扣一滴血,二是所有怪物都扣一滴血,并且如果因此有怪物死亡,重复群体扣血,直到没有怪物因群体扣血死亡。方式二在一次讨伐中只能使用一次。
输出方式一最少要使用几次
1.显然整个解题要围绕方式二展开,要尽量使怪物的血量呈现1 2 3 4 5这样的阶梯式血量,
2.作为C题,他必然是有要考虑的特例的,而该题的特例是,1 4 4 4 5 6 。
3. 实际上,在初次处理该题时我想到的是用k递增,确保每一级的数都有直到列表最大值不超过k,而当中间没有的时候,就用最大值转换为k,然后处理下一级。这种处理方法对大多数情况有效,但对 1 4 4 4 5 6 这种有重复,而且重复的数不大不小的情况,就会出错。对 1 4 4 4 5 6 处理出正确的值应为3 ,而上述处理方法会输出6.
4.故而我换用了从小到大的处理方式。
![](https://i-blog.csdnimg.cn/blog_migrate/4e7e1191d0d35e97599a93947698448e.png)