File tree Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change @@ -521,6 +521,40 @@ int main() {
521521### Java
522522
523523### Python
524+ ``` python
525+ # 接收输入
526+ v, e = list (map (int , input ().strip().split()))
527+ # 按照常规的邻接矩阵存储图信息,不可达的初始化为10001
528+ graph = [[10001 ] * (v+ 1 ) for _ in range (v+ 1 )]
529+ for _ in range (e):
530+ x, y, w = list (map (int , input ().strip().split()))
531+ graph[x][y] = w
532+ graph[y][x] = w
533+
534+ # 定义加入生成树的标记数组和未加入生成树的最近距离
535+ visited = [False ] * (v + 1 )
536+ minDist = [10001 ] * (v + 1 )
537+
538+ # 循环 n - 1 次,建立 n - 1 条边
539+ # 从节点视角来看:每次选中一个节点加入树,更新剩余的节点到树的最短距离,
540+ # 这一步其实蕴含了确定下一条选取的边,计入总路程 ans 的计算
541+ for _ in range (1 , v + 1 ):
542+ min_val = 10002
543+ cur = - 1
544+ for j in range (1 , v + 1 ):
545+ if visited[j] == False and minDist[j] < min_val:
546+ cur = j
547+ min_val = minDist[j]
548+ visited[cur] = True
549+ for j in range (1 , v + 1 ):
550+ if visited[j] == False and minDist[j] > graph[cur][j]:
551+ minDist[j] = graph[cur][j]
552+
553+ ans = 0
554+ for i in range (2 , v + 1 ):
555+ ans += minDist[i]
556+ print (ans)
557+ ```
524558
525559### Go
526560
You can’t perform that action at this time.
0 commit comments