ARC076B题解
题意:给你 \(n\) 个点,每个点的坐标是 \((x_i,y_i)\) ,定义 \((a,b)\) 与 \((c,d)\) 两点间的距离为 \(\operatorname{min}\{|a-c|,|b-d|\}\) ,求这个图的MST。
先考虑横向。设有三个点横坐标为 \(x_1,x_2,x_3(x_1<x_2<x_3)\) ,那么从 \(x_1\) 走到 \(x_3\) 可以走 \(x_1\to x_2\to x_3\) ,也可以 \(x_1 \to x_3\) 。但因为两个路线的长度都是 \(|x_2-x_1|+|x_3-x_2|=|x_3-x_1|\) ,没有区别,所以连边的时候可以只连 \(x_1,x_2\) 和 \(x_2,x_3\) 两条边。
拓展到 \(n\) 个点的情况。只需要把它们按照横坐标排序,每一个点只需要连下一个点即可。纵坐标显然一样。这样,我们就把 \(n^2\) 条边简化成了 \(2\times(n-1)\) 条边。然后在这个图上跑 \(\operatorname{Kruscal}\) 就做完了。