卧薪尝胆,厚积薄发。
Date: Wed Nov 07 19:25:59 CST 2018 In Category: NoCategory

Description:

有 $n$ 个物品,第 $i$ 个物品的价格是 $v_i$ ,有两个人,每个人都喜欢 $n$ 个物品中的一些物品。 要求选出正好 $m$ 个物品,满足选出的物品中至少有 $k$ 个物品被第一个人喜欢, $k$ 个物 品被第二个人喜欢。并求出最小的价格和。
$1\leqslant n\leqslant 2\times 10^5$

Solution:

把所有的物品根据两个人是否喜欢分成四类。 如果枚举两个人都喜欢的物品中选了 $r$ 个,那么在只有第一个人喜欢的物品中和只有第二个人喜欢的物品至少都还要选 $k−r$ 个,显然在这里会直接选择权值最小的 $k−r$ 个。 之后若还没有选够 $m$ 个,那么需要在剩下的物品中随便选使得达到 $m$ 个。 所以可以从小到大枚举 $r$ ,然后用线段树维护一下“剩下的物品”,支持查询前 $x$ 小值之和就可以了。

Code:


没有代码
Copyright © 2020 wjh15101051
ღゝ◡╹)ノ♡