轻松的编程学习
首页
题库
学习路径
在线商城
能力地图
下载应用
登录 / 注册
菜单
写一个 Kruskal
👁️ 0 人浏览
💬 0 人评论
❤️ 添加收藏
补全
kruskal
:边按权重排好,
用
union
的返回值决定要不要这条边
。
输出最小总长
。
提交你的答案
请登录后提交答案。
去登录
← 复习:写 find 和 union
Kruskal 是按什么顺序选边的 →
更多题目
让程序说出"你好"
让程序欢迎你
哪个命令能显示内容
哪里是指令,哪里是结果
让程序说出你的名字
这个程序会显示什么
代码编辑器
语言:
python3
c11
cpp17
Ctrl
+
Enter
运行
👩🏫 AI
▶ 运行代码
重置代码
打印代码
def make(verts): return {u: u for u in verts} def find(p, x): while p[x] != x: p[x] = p[p[x]] x = p[x] return x def union(p, a, b): ra, rb = find(p, a), find(p, b) if ra == rb: return False p[ra] = rb return True def kruskal(edges, verts): p = make(verts) total = 0 picked = [] # TODO: 按 (权重, 两端编号) 排序,逐条试 # TODO: union 返回 True 才把这条边计入 total 和 picked return total, picked print(kruskal([(0, 1, 2), (0, 2, 1), (1, 3, 3), (2, 4, 9), (3, 4, 1)], [0, 1, 2, 3, 4])[0])
本次输入:
输出:
👩🏫
AI
请登录后使用 AI 老师
×
登录后可获得解题思路、提示与错误分析。
去登录
关闭
🎉
恭喜你,回答正确!
系统判定:正确
我知道了
💬 题目评论
提交
全部评论
全部评论