wqs 二分的时候,有可能出现不能恰好达到 k 的情况。此时意味者这个凸包中 k−1,k,k+1 三点形成了一条直线。此时取哪一侧都是对的。但是要注意,最后的答案是 sum-val*k 而不是 sum-val*cnt(cnt 表示 check 跑出来的结果)。否则 hack 数据会 wa 第三个点。
由此,我们产生了两种二分判定答案的方式:if(cnt<=k) 或者 if(cnt>=k)。需要注意的是,如果使用第一种判定方式,需要在归并排序时,当边权相同时将不与 s 相连的边放在前面,表示“我想尽量让答案大,但是答案还是恰好 ≤k”。使用第二种时则要放在后面。否则 hack 数据会 wa 后三个点。