4241. 货物运输

摘要
Title: 4241. 货物运输
Tag: 最短路模型、spfa
Memory Limit: 64 MB
Time Limit: 1000 ms

Powered by:NEFU AB-IN

Link

4241. 货物运输

  • 题意

    给定一个 n 个点 m 条边的无重边无自环的无向图。
    点的编号为 1∼n。
    现在,要从点 1 到点 n 运货。
    已知每条边的最大承重,请你计算一次最多可以运多少货物。

  • 思路

    最短边的最大值,和上题的青蛙相反
    当边长度小的时候,就松弛,赋予更大的值

    注意初始化,从11点开始,那么就是无穷大开始

  • 代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    '''
    Author: NEFU AB-IN
    Date: 2022-04-16 11:08:47
    FilePath: \ACM\Acwing\4241.py
    LastEditTime: 2022-04-16 11:08:48
    '''
    from collections import deque

    N = 1010
    INF = int(1e9)
    g = [[0] * N for _ in range(N)]
    dist, st = [0] * N, [0] * N


    def spfa(u):
    q = deque()
    q.appendleft(u)
    st[u] = 1
    dist[u] = INF
    while q:
    u = q.pop()
    st[u] = 0
    for v in range(1, n + 1):
    if dist[v] < min(dist[u], g[u][v]):
    dist[v] = min(dist[u], g[u][v])
    if st[v] == 0:
    st[v] = 1
    q.appendleft(v)
    return dist[n]


    for _ in range(1, int(input()) + 1):
    dist, st = [0] * N, [0] * N
    g = [[0] * N for _ in range(N)]
    n, m = map(int, input().split())
    for i in range(m):
    u, v, w = map(int, input().split())
    g[u][v] = w
    g[v][u] = w
    print(f"Scenario #{_}:")
    print(spfa(1))
    print()
使用搜索:谷歌必应百度