【典】P2387 二维限制的图的联通性
有一张 \(n\) 个点, \(m\) 条边的图,每条边有两个权值 \((a_i,b_i)\),现在要选若干条边使得 \(1\) 到 \(n\) 联通,求 \(\max_{i\in E} a_i+\max_{i\in E}b_i\) 的最小值。
\(n,m\le 10^5\)
这类题目一般都保证两维权值可以双指针,也就是令 \(\max a_i\) 变大,那么 \(\max b_i\) 就会变小。
正解做法是 LCT,直接双指针,加边断边维护一下联通性即可,复杂度 \(O(n\log n)\)。
实现难度不小。
考虑用并查集进行维护,主要的问题在于并查集只能支持撤销,不能随意删除,不是很好搞。
套上撤销并查集的经典算法是线段树分治,但是这样需要每条边都是一个区间。
把线段对应的点放到二维坐标上,最后的答案肯定是把一个左下矩形的边全部加入。
\(\max a_i\) 从大到小移动,每次会删掉一些上面的边,然后加入一些边,注意到一条边的存在时间一定是一个区间。
因此加入的时候把每条边的区间算出然后维护即可。
CF603E *3000
同理,一维是时间,一维是权值,合法的条件就是不存在孤立点,并查集维护。
uoj693
直接给你写好了并查集。。
一样做就行。