WQS二分学习笔记

xiaoxiao2025-08-15  40

前言

W Q S WQS WQS二分听起来是个很难的算法,其实学起来也并不是那么难。


适用范围

在某些题目中,会对于某个取得越多越优的物品,限定你最多选择 k k k个,问你能得到的最优答案。

例如这道题目:【CF739E】Gosha is hunting。

L i n k Link Link

【CF739E】Gosha is hunting 的题解 详见博客 【CF739E】Gosha is hunting(WQS二分套WQS二分)

这些题目一般都可以通过枚举选择的物品个数并 O ( n ) D P O(n)DP O(n)DP来做到 O ( n k ) O(nk) O(nk)

但如果随着选择物品个数的增加,得到贡献的斜率是不递增的,我们就可以用 W Q S WQS WQS二分,来将 O ( n k ) O(nk) O(nk)的时间复杂度优化为 O ( n l o g n ) O(nlogn) O(nlogn)


大致思想

W Q S WQS WQS二分的核心思想其实非常简单。

既然原来选得越多越优,那么我们可以给选择一个物品增加一个代价 C C C C C C可以拿来二分),由于总贡献增长得越来越慢,所以最后肯定会形成一个单峰函数,然后我们就可以通过 D P DP DP等方式 来求解出此时的最优答案以及最优答案选择的物品个数,并根据选择的物品个数来更新 C C C的值。

这样就变成 O ( n l o g n ) O(nlogn) O(nlogn)了。

最后的答案就是 f n + k ∗ C f_n+k*C fn+kC(注意,不能写成 f n + m i d ∗ C f_n+mid*C fn+midC)。


后记

关于例题,文中提到的【CF739E】Gosha is hunting一题就是 W Q S WQS WQS二分 一道比较经典的题目,感兴趣的可以自己去看一看、做一做。

【POJ1160】Post Office其实也是一道 W Q S WQS WQS二分的入门题,也是值得一做的。

L i n k Link Link

【POJ1160】Post Office 的题解 请参考博客 【HHHOJ】NOIP模拟赛 捌 解题报告的 T 2 T2 T2

转载请注明原文地址: https://www.6miu.com/read-5034902.html

最新回复(0)