轻松的编程学习
首页
题库
学习路径
在线商城
能力地图
下载应用
登录 / 注册
菜单
把最短路径还原出来
👁️ 0 人浏览
💬 0 人评论
❤️ 添加收藏
补全
dij_path
:松弛成功时
记下父亲
,最后从终点倒着回溯。
输出 0 到 4 的路径
(用 - 连)。
提交你的答案
请登录后提交答案。
去登录
← 写一个 Dijkstra
⚠️ 最短的路 vs 最少的步 →
更多题目
让程序说出"你好"
让程序欢迎你
哪个命令能显示内容
哪里是指令,哪里是结果
让程序说出你的名字
这个程序会显示什么
代码编辑器
语言:
python3
c11
cpp17
Ctrl
+
Enter
运行
👩🏫 AI
▶ 运行代码
重置代码
打印代码
import heapq def dij_path(g, s, t): INF = 10 ** 9 d = {u: INF for u in g} d[s] = 0 par = {s: None} done = set() pq = [(0, s)] # TODO: 标准 Dijkstra;每次松弛成功时记 par[v] = u # TODO: 从 t 顺着 par 一路回到 s,再翻过来 return [] def build(edges): g = {} for a, b, w in edges: g.setdefault(a, []).append((b, w)) g.setdefault(b, []).append((a, w)) for u in g: g[u].sort() return g g = build([(0, 1, 2), (0, 2, 1), (1, 3, 3), (2, 4, 9), (3, 4, 1), (5, 6, 7)]) print("-".join(str(x) for x in dij_path(g, 0, 4)))
本次输入:
输出:
👩🏫
AI
请登录后使用 AI 老师
×
登录后可获得解题思路、提示与错误分析。
去登录
关闭
🎉
恭喜你,回答正确!
系统判定:正确
我知道了
💬 题目评论
提交
全部评论
全部评论