连通点阵
时间限制:1秒 内存限制:256M
【题目描述】
有一个 \(m\) 行 \(n\) 列的点阵(行编号为 \(1..m\),列编号为 \(1..n\)),相邻两点可以相连。一条纵向的连线花费一个单位,一条横向的连线花费两个单位。某些点之间已经有连线了,试问至少还需要花费多少个单位才能使所有的点全部连通。
【输入格式】
第一行输入两个正整数 \(m\) 和 \(n\)。
以下若干行每行四个正整数 \(x_1,y_1,x_2,y_2\),表示第 \(x_1\) 行第 \(y_1\) 列的点和第 \(x_2\) 行第 \(y_2\) 列的点已经有连线。输入保证 \(|x_1-x_2 |+|y_1-y_2 |=1\)。
【输出格式】
输出使得连通所有点还需要的最小花费。
【输入输出样例1】
Input
2 2
1 1 2 1
Output
3
【输入输出样例1说明】
如下图,已经连接(1,1)—(2,1),只需新连接(1,1)—(1,2)和(1,2)—(2,2);或者新连接(2,1)—(2,2)和(1,2)—(2,2)。花费为3各单位。
【输入输出样例2】
Input
4 5
1 1 1 2
1 2 2 2
2 2 2 1
2 1 1 1
2 2 3 2
3 2 3 3
3 4 4 4
Output
15
【数据限制】
对于 \(100\%\) 的数据,\(1≤n,m≤1000\)。
【来源】
Mr.he