P2323 [HNOI2006] 公路修建问题 最小生成树 / 二分
考虑这么一个事情,要求最大值最小,所以考虑二分。
题目说至少 \(k\) 条要修建 \(1\) 号边,我们在二分的 check 中不妨保留所有边权 \(\le mid\) 的 \(1\) 号边,此时会形成若干个连通块,考虑这么一个事情,假设连通块数量为 \(p\),那么本质上能用到的 \(1\) 号边本质上是 \(n - p\) 条,所以我们判断一下 \(n - p\) 与 \(k\) 的大小关系,然后我们再连通所有能连的 \(2\) 号边,看是否全部连通即可。
但是你发现这样做的时间复杂度是 \(O(n \log^2 n)\) 的,考虑如何继续优化,对于每个 \(1\) 号边的权值排序,然后用双指针维护合并并查集信息,无需二分,复杂度即做到 \(O(n \log n)\)。

浙公网安备 33010602011771号