码迷,mamicode.com
首页 > 其他好文 > 详细

【Codeforces 332C】Students' Revenge

时间:2019-03-24 23:30:59      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:好的   开心   math   优先队列   增加   codeforce   学生   lin   def   

Codeforces 332 C

我爱对拍,对拍使我快乐。。。

题意:有\(n\)个议题,学生们会让议会同意\(p\)个,其中主席会执行\(k\)个,

每一个议题执行后主席会掉\(a_i\)的头发,不执行后议会会增加\(b_i\)的不开心值,

然后主席想让议会的不开心值最小,如果有多重方案就选自己头发掉的最少的;

而学生们想让主席的头发掉的最多,如果有多种方案让议会的不开心值最大。

问让议会同意哪\(p\)个会达到最好的效果。

思路1:

这是我的不对的思路。

(虽然没提交

我们首先将所有的数按照\(b_i\)从大到小排,如相等按照\(a_i\)从小到大排。

然后把前\(n-p+k\)个按照\(a_i\)从大到小排,

然后取前\(k\)个作为主席执行的

再向后延\(p-k\)个作为主席不执行的

然后其实这个是错的。

如果所有的\(a\)都相等,那么这个答案就不对

(我只是对拍出来的,并不会证。

思路2:

这是对的思路。

首先我们枚举主席执行的和不执行的所取的议题的范围的分界线\(i\)

然后我们对于所有的\(i\)要找出主席取的和不取的最好效果的那些议题。

那就从前往后扫一遍,找出取的;

从后往前再扫一遍,找出不取的。然后取或不取都是放到优先队列里面找最大的\(a\)\(b\)

然后看答案最大的就可以了。

【Codeforces 332C】Students' Revenge

标签:好的   开心   math   优先队列   增加   codeforce   学生   lin   def   

原文地址:https://www.cnblogs.com/denverjin/p/10591132.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!