中级
Dijkstra最短路
未完成
中级参考
代码结构已给出,请填写 ____ 处
def solve(____):
from collections import defaultdict
import heapq
n = int(____)
start = int(____)
end = int(____)
graph = defaultdict(____)
for e in edges.split(____):
u, v, w = map(int, e.split(____))
graph[u].append((____))
graph[v].append((____))
dist = [float(____)] * n
dist[start] = ____
pq = [(____, start)]
while pq:
d, u = heapq.heappop(____)
if d > dist[u]:
continue
for v, w in graph[u]:
if dist[v] > dist[u] + w:
dist[v] = dist[u] + w
heapq.heappush(pq, (____))
print(____)
示例
输入
solve('0,1,1;1,2,2;0,2,4', 3, 0, 2)
期望输出
3
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199