Constructing Roads

 1 Sec 64 MB |  显示标签
59145
通过提交

题目描述

有N个乡村,编号从1到N,需要建立一些道路,保证任何两个乡村之间都是互通的。我们说两个乡村A和B是相连的,当A和B之间有一条路或者存在乡村C,A和C之间有路,C和B也是相连的。
我们知道一些乡村之间已经存在一些道路了,你的工作就是建立一些道路保证所有的乡村都是相连的,并且所有道路的长度是最小的。

输入格式

第一行是个整数N(3 <= N <= 100),是乡村的个数。然后是N行,每行包含N个数字,第i行j列的数字表示第i个乡村和第j个乡村之间的距离。
接下来有个整数Q(0 <= Q <= N * (N + 1) / 2)。接下来有Q行,每行包含两个整数a和b (1 <= a < b <= N),表示乡村a和b之间的道路已经建好了。

输出格式

你应该输出一行,包含一个整数,表示需要建的道路的长度和,保证所有乡村相连,并且该值最小。

样例输入 #1

3 
0 990 692 
990 0 179 
692 179 0 
1 
1 2

样例输出 #1

179
 上传者
coach
 创建时间
2014-04-19 20:40