Codeforces 332CStudents' Revenge
Posted denverjin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces 332CStudents' Revenge相关的知识,希望对你有一定的参考价值。
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 332CStudents' Revenge的主要内容,如果未能解决你的问题,请参考以下文章
2017-5-18-Train: Codeforces Round #332 (Div. 2)
Codeforces Round #332 (Div. 2) D. Spongebob and Squares(枚举)