wqs 二分 学习笔记

引言

AGC018C Coins 因为不想写反悔贪心所以去学 wqs 二分。

wqs 二分 最初由王钦石在他的 2012 年国家集训队论文中提出,而从 IOI 2016 的 Aliens 题目开始,这种方法开始逐步在竞赛圈中有了一定的地位。在国内一般称为「wqs 二分」,而在国外一般称为「Alien Trick」。

算法引入

有 $n$ 个物品,物品 $i$ 的权值为 $w_i$,我们需要从中正好选择 $k$ 件物品,要求取出的物品总权值最大。

Solution 1

贪心,排序选出前 $k$ 个。

Solution 2

动规,设 $f_{i,j}$ 表示从前 $i$ 个物品中选出 $j$ 件可以获得的最大权值,可得:

$$f_{i,j}=\max(f_{i-1,j},f_{i-1,j-1}+w_i)$$

时间复杂度 $O(n^2)$,如果没有限制的话可以压倒一维,时间复杂度也会降到 $O(n)$。

Solution 3

wqs 二分,设 $g_j$ 表示 $n$ 件物品中仅能取 $j$ 件的最大权值,即 $\max_{i=1}^{n}f_{i,j}$,且满足 $g_j-g_{j-1}\ge g_{j+1}-g_j$,斜率单调不增,是个上凸包。

++,不会了,有空再补。

挖坑待填

引用及参考

论文

浅析一类二分方法 - 王钦石

博客

Wqs二分 - Daltao

wqs 二分学习笔记 - 菠萝头

关于WQS二分算法以及其一个细节证明 - Creeper_LKF

上一篇
下一篇