解题思路:
注意事项:注意理解题目的输入用例到底是什么意思
参考代码:
n=int(input())
inf=float('inf')
gra=[[inf for _ in range(n+1)] for _ in range(n+1)]
st=[False]*(n+1)
a=[]
for _ in range(n):
w=a.append(list(map(int,input().split())))
for i in range(1,n+1):
for j in range(1,n+1):
gra[i][j]=a[i-1][j-1]
def prim():
res=0
dis=[inf]*(n+1)
dis[1]=0
for i in range(n):
t=-1
for j in range(1,n+1):
if st[j]==False and (t==-1 or dis[t]>dis[j]):
t=j
if dis[t]==inf:return inf #说明非连通
res+=dis[t]
st[t]=True
for j in range(1,n+1):
dis[j]=min(dis[j],gra[t][j])
return res
print(prim())
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题11.11 (C语言代码)浏览:772 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:1533 |
C语言训练-角谷猜想 (C语言代码)浏览:1705 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:668 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:559 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:464 |
【排队买票】 (C语言代码)浏览:900 |
WU-输出正反三角形 (C++代码)浏览:1019 |
用筛法求之N内的素数。 (C语言代码)浏览:649 |
【绝对值排序】 (C语言代码)浏览:821 |