← 返回题库
中级

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
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码