首页 > 代码库 > Codeforces 799E(贪心)
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(贪心)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。