某地对偏远地区实行“村村通”工程,目标是使整个地区任何两个村落间都可以实现快速交通(但不一定有直接的快速道路相连,只要互相间接通过快速路可达即可)。现得到拟修建道路的费用,现请你编写程序,计算出全地区畅通需要的最低成本。
输入格式:
输入的第一行给出村庄数目N (1≤N≤20)和拟修建的道路数M
接下来的M行对应修建每条村庄间道路的成本,每行给出3个正整数,分别是两个村庄的编号(从1编号到N),此两村庄间道路的成本。
输出格式:
输出需修建的道路,按prim算法从编号s开始得到的顺序,输出每条路,每行输出一条道路,形式如:道路1编号,道路2编号,费用。(编号小的放前面,编号大的放后面,逗号为英文状态下的逗号)
输入样例:
4 6 3
1 2 1
1 3 4
1 4 1
2 3 3
2 4 2
3 4 5
输出样例:
2,3,3
1,2,1
1,4,1
def Prim(mgrap, k):
res = []
candid = [i for i in range(len(mgrap)) if i != k-1]
select = [k-1]
while len(candid) > 0:
n, m, mid = 0, 0, 1000
for i in select:
for j in candid:
if mgrap[i][j] < mid: