本文为普里姆算法(Prim’s Algorithm)对于求最小生成树的另一种算法:
克鲁斯卡尔算法(Kruskal’s Algorithm)请见:最小生成树 | Minimum Spanning Tree | 克鲁斯卡尔Kruskal算法 | C/C++实现
问题描述
请编写一个程序,计算给定加权图 G = ( V , E ) G=(V,E) G=(V,E)的最小生成树的各边权值之和。
输入: 第1行输入G的顶点数n。接下来n行输入表示G的 n ∗ n n*n n∗n邻接矩阵A。A的元素 a i j a_{ij} aij代表顶点 i i i到顶点 j j j的边的权值。另外,边不存在时记为-1。
输出: 输出G的最小生成树的各边权值总和,占1行。
限制:
1 ≤ n ≤ 100
0 ≤ a i j a_{ij} aij ≤ 2000 ( a i j ≠ − 1 时 ) (a_{ij} \neq -1 时) (aij