欢迎光临散文网 会员登陆 & 注册

Codeforces Round #792 (Div. 1 + Div. 2) D, E

2022-05-20 15:21 作者:Asunataisiki  | 我要投稿

D. Traps

题意:有n个陷阱,每个陷阱会受到a_i点伤害,现在最多可以跳过k个陷阱,,但每跳过一个陷阱后面的陷阱伤害全部+1,问受到的最小伤害是多少

思路:因为每跳过一个陷阱,后面的伤害都会增加1,所以跳过一个陷阱相当于把这个陷阱的伤害从a_i替换成n-i所以我们只用贪心地去维护前k大的n-i-a%5Bi%5D的值即可


E.MEX vs DIFF

题意:定义diff表示数组中有多少个不同的数字,mex表示数组中未出现过的最小非负整数,现在给出n个数,现在可以操作k次,把其中一个数字变成另外一个数字,求diff-mex的最小值

赛时想到了,但是写不来代码233(代码参考知乎严格鸽)

思路:首先要让这个式子值变小,肯定是让diff变小,mex变大是最优的,我们下面这个情况 %5B0%2C1%2C2%2C5%2C5%2C6%5D,如果我们把5变成3,那么diff增大1,mex也增大1,答案不变;如果我们把6变成3,diff不变,mex增大1,答案减小,因此策略应该是让mex变大,并且进一步分析可以发现,选择比mex大,并且出现次数小的优先改变



Codeforces Round #792 (Div. 1 + Div. 2) D, E的评论 (共 条)

分享到微博请遵守国家法律