Codeforces 799E(贪心)

Posted 人活着就是为了Chelly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces 799E(贪心)相关的知识,希望对你有一定的参考价值。

题意:

有n个物品,购买物品i需要花费ci的代价。Arkady和Masha分别有喜欢的物品。

现在需要从中选m个,使得这m个物品中至少有k个Arkady喜欢的物品,k个Masha喜欢的物品。

输出满足要求的最小代价,无解输出-1。

1 <= n <= 2e5, 1 <= m <= n, 1 <= k <= n.

1 <= ci <= 1e9.

分析:

将物品分为4类

  A:两人都喜欢的物品

  B:只有Arkady喜欢的物品

  C:只有Masha喜欢的物品

  D:两人都不喜欢的物品

每组内部从小到大排序

枚举A类选择x个,那么B类选择k-x个,C类选择k-x个,那么现在总共选了2*k-x个,对于剩余m-(2*k-x)个就在D类里选择

考虑x->x+1,只需要用set来维护,就可以做到O(logn)转移答案

总的复杂度O(nlogn)

 

以上是关于Codeforces 799E(贪心)的主要内容,如果未能解决你的问题,请参考以下文章

CodeForces463C Gargari and Bishops(贪心)

Codeforces 452D [模拟][贪心]

Codeforces 830A. Office Keys (背包dp+贪心) / (二分+贪心)

CodeForces 998B Cutting(贪心)

CodeForces 462B Appleman and Card Game(贪心)

贪心 codeforces 878E