wqs二分学习笔记
很神奇的东西。
https://www.cnblogs.com/yfzqwq/p/18492754
将某些物品修改,使得选择不受限,再把修改的影响消除。当我们修改到一个值的时候,刚好切到m了,然后这个最大的截距就是答案了。前面都很清楚了,主要是后面斜率如果一段相同怎么办呢?我们直接选m个数就行了是吧,如懂。就是我们二分出的那个斜率就是答案的斜率了,那么我们直接用这个斜率去计算就行了。
[P2619]
稍微有一点细节。我们的答案肯定是\(f[i]=ans+mid*k\)。我们\(ans\)的边权修改之后的不算贡献的答案,\(mid\)是减掉的答案。然后就做完了。有一个细节不是特别懂,我们\(wqs\)二分最懂答案减掉的是 \(k *x\)这个很奇妙,首先,我们的\(tot>=k\),其次,如果最终答案如果我们因为二分的这个性质肯定会保证这个最靠近\(k\)的,额?就是我们的\(mid\)求出来的\(k\)不一定是连续的,究其原因是因为不同的\(k\)都可以得到这个结果。
[P5633]
幽默,稍微转化即可
[P1792]
我们不可能第一个和最后一个同时种,所以我们先减掉,然后二分,然后从\(1\dots n-1\)做一遍,从\(2\dots n\)做一遍,显然是符合要求的。中间就随便dp一下就做完了
[P1484]
至多种k颗树,那就把里面二分改一下,我觉得就不应该把wqs二分当作这个函数来理解,我觉得就是随着这个偏移量的变化,我们的这个答案也会变化,所以当我们取到这个答案的时候,它一定是这个点最优的。但如果我们有多个点可以切呢?还要取小于\(m\)个数,我们直接把这个东西改掉是不是就可以了,也就是里面取的东西是。所以我们就这样,如果x>=图像的最低点,那么就搞一个,否则就是这个答案。然后注意这个斜率的范围应该是。二分的上下界应该是这个数的上下界,也就是相当于所有数都是负的之后答案不会改变了,多减答案也不会改变了。wqs有一个挺搞的点就是我们必须要在当前的方案下选最多的数.不对不对,应该是要去最少的数,相当于我们这个其实是合法,否则我们可能把一个合法的判成不合法的,因为这个段的右端点超过了\(m\)。