Solution - CF527D Clique Problem

CF527D Clique Problem

idea:

思维

解决方案:

参考第一篇题解。

xixjwi+wj\mid x_i - x_j\mid \geq w_i + w_j 感觉乱七八糟的,故先规定 xj>xix_j > x_i ,然后把 i,ji,j 归类。即: xjwjxi+wix_j - w_j\geq x_i + w_i

接下来是关键的一步:我们令 li=xiwil_i = x_i - w_iri=xi+wir_i = x_i + w_i ,那么只要满足 riljr_i\leq l_j 就可以连一条边 (i,j)(i,j)

我们不妨把第 ii 个点看成一根覆盖 [li,ri][l_i,r_i] 的线段,那么不相互重叠的所有线段都是一个团里面的。

这个问题就解决了。

然而对于线段覆盖这个问题,我想到的方法是先按 ll 排序,然后令二分优化 dpdp ,复杂度 O(nlogn)O(n\log n) 。其实只需要按 rr 排序,然后贪心就好了。。。码量小常数小。(然而测试发现两种方法用时完全相同。。。)

总复杂度 O(nlogn)O(n\log n)