Codeforces Round #792 (Div. 1 + Div. 2) D, E
2022-05-20 15:21 作者:Asunataisiki | 我要投稿
D. Traps
题意:有个陷阱,每个陷阱会受到
点伤害,现在最多可以跳过
个陷阱,,但每跳过一个陷阱后面的陷阱伤害全部+1,问受到的最小伤害是多少
思路:因为每跳过一个陷阱,后面的伤害都会增加1,所以跳过一个陷阱相当于把这个陷阱的伤害从替换成
,所以我们只用贪心地去维护前
大的
的值即可
E.MEX vs DIFF
题意:定义表示数组中有多少个不同的数字,
表示数组中未出现过的最小非负整数,现在给出
个数,现在可以操作
次,把其中一个数字变成另外一个数字,求
的最小值
赛时想到了,但是写不来代码233(代码参考知乎严格鸽)
思路:首先要让这个式子值变小,肯定是让变小,
变大是最优的,我们下面这个情况
,如果我们把5变成3,那么
增大1,
也增大1,答案不变;如果我们把6变成3,
不变,
增大1,答案减小,因此策略应该是让
变大,并且进一步分析可以发现,选择比mex大,并且出现次数小的优先改变