#445. 网线建设

网线建设

题目背景

强哥是一位热心社区建设的工程师,他居住的小镇最近决定建设一个共享网络,让所有居民都能方便地接入互联网。作为项目负责人,强哥需要设计一个方案,用最少的网线将小镇上的所有公共设施连接起来。

经过前期勘察,强哥已经确定了 NN 个需要接入网络的公共设施点,并且测量了每两个设施点之间铺设网线的成本。现在,他希望你能帮助他计算出一个最优方案,使得所有设施点都能连入网络,并且铺设网线的总成本最小。

输入格式

第一行:公共设施点的个数,NN3N1003 \le N \le 100)。

第二行到结尾:接下来的行包含一个 N×NN \times N 的矩阵,表示每个设施点之间的距离(即铺设网线的成本)。理论上,它们是 NN 行,每行由 NN 个用空格分隔的数组成;实际上,由于每行可能超过 80 个字符,某些行可能会紧接着另一些行(即输入数据可能跨行,但仍是按行顺序给出的)。当然,矩阵对角线上的数都是 00,因为不需要从同一个设施点向自己铺设网线。

输出格式

输出仅一个整数,表示连接所有设施点所需网线的最小总长度。

4
0  4  9  21
4  0  8  17
9  8  0  16
21 17 16  0
28