← 返回题库
中级

最短路变形

未完成
中级参考 代码结构已给出,请填写 ____ 处
def solve(____):
    from collections import defaultdict
    import heapq
    graph = defaultdict(____)
    for e in edges.split(____):
        u, v, w = map(int, e.split(____))
        graph[u].append((____))
    dist = [float(____)] * (____)
    dist[____] = ____
    pq = [(____, ____)]
    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(dist[n] if dist[n] != float(____) else -____)

示例

输入
3|3|1,2,1;2,3,2;1,3,4
期望输出
3
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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