Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit b7eb403

Browse files
Merge pull request youngyangyang04#2601 from SusanAIFF/master
更新了prim寻宝的python写法
2 parents 0828601 + 45ad945 commit b7eb403

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

‎problems/kamacoder/0053.寻宝-prim.md‎

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /