警示后人(关于 wqs 二分和排序先后)
查看原帖
警示后人(关于 wqs 二分和排序先后)
482660
konyakest楼主2025/1/16 21:15
  1. wqs 二分的时候,有可能出现不能恰好达到 k 的情况。此时意味者这个凸包中 k1,k,k+1k−1,k,k+1 三点形成了一条直线。此时取哪一侧都是对的。但是要注意,最后的答案是 sumvalksum-val*k 而不是 sumvalcntsum-val*cntcntcnt 表示 check 跑出来的结果)。否则 hack 数据会 wa 第三个点。

  2. 由此,我们产生了两种二分判定答案的方式:if(cnt<=k) 或者 if(cnt>=k)。需要注意的是,如果使用第一种判定方式,需要在归并排序时,当边权相同时将不与 s 相连的边放在前面,表示“我想尽量让答案小,其实答案有可能比 cnt 更大的”。使用第二种时则要放在后面。否则 hack 数据会 wa 后三个点。

2025/1/16 21:15
加载中...