WQS 二分 / 带权二分

有趣的一个 trick ,在选取 \(k\) 个物品的限制下,求最大 / 最小值。

令选的物品个数 \(cnt\)\(x\),以及对应的答案为 \(f(x)\)。发现函数图像是有凸性的。

也就是我们每次多选取一个物品时的收益是单调的,对应到图像上也就是斜率单调。

譬如 P2619 [国家集训队] Tree I ,可以感性理解为,白边少是影响收益的限制,选多了也是限制。

由于这个图像的斜率具有单调性,所以我们可以二分切线的斜率。

\[y = b + kx \]

我们知道 \(x\),知道 \(k\),那么如何求出 \(b\) 呢,移一下项:

\[b = y - kx \]

发现 \(b\) 是具有一定意义的,具体为我们每选一条白色边,就对应再添上一个 \(-k\) 的代价,二分时计算一下,最后带回式子就做完了。

posted @ 2026-01-08 19:46  Zheng_iii  阅读(2)  评论(0)    收藏  举报