SZ#G8M33. 城市联网

提交5 通过1
通过率20%
时间限制2000ms
内存限制512MiB
    ID: 12054 传统题 2000ms 512MiB 尝试: 5 已通过: 1 难度: 普及+/提高- 上传者: 标签>GESPGESP强化C++c++编程题最小生成树Kruskal候选边优化

题目描述

题目描述

小婷正在为平面上的 NN 座城市规划道路。第 ii 座城市位于坐标 (xi,yi)(x_i,y_i),不同城市可能位于完全相同的坐标。

她只能在两座城市之间直接修建道路。若两座城市分别位于 (a,b)(a,b)(c,d)(c,d),修建连接它们的道路所需费用为

min(ac,bd).\min(|a-c|,|b-d|).

道路建成后可以双向通行,也可以经过其他城市中转。小婷需要修建若干条道路,使任意两座城市之间都能够通过已建道路互相到达。

请计算完成这一目标至少需要多少费用。

输入格式

第一行输入一个整数 NN

接下来 NN 行,第 ii 行输入两个整数 xi,yix_i,y_i,表示第 ii 座城市的坐标。

输出格式

输出一个整数,表示使所有城市连通所需的最小总费用。

3
1 5
3 9
7 8
3

样例说明 #1

连接城市 1,21,2 的费用为 22,连接城市 2,32,3 的费用为 11,总费用为 33

6
8 3
4 9
12 19
18 1
13 5
7 6
8

样例说明 #2

通过合理选择五条道路,可以用总费用 88 连通全部六座城市。

2
0 0
0 0
0

样例说明 #3

两座城市位于同一坐标,直接连接它们的费用为 00

数据范围与约定

2N1052\le N\le10^50xi,yi1090\le x_i,y_i\le10^9。输入中的所有数均为整数,不同城市可以位于相同坐标。