初级
最小生成树
未完成
初级参考
完整示例代码供参考,建议自己理解后重新输入
def solve(edges):
edges_list = []
for e in edges.split(';'):
u, v, w = map(int, e.split(','))
edges_list.append((w, u, v))
edges_list.sort()
parent = {}
def find(x):
if x not in parent:
parent[x] = x
if parent[x] != x:
parent[x] = find(parent[x])
return parent[x]
total = 0
for w, u, v in edges_list:
pu, pv = find(u), find(v)
if pu != pv:
parent[pu] = pv
total += w
print(total)
示例
输入
solve('1,2,1;2,3,2;1,3,4')
期望输出
3
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199