4243. 传递信息

摘要
Title: 4243. 传递信息
Tag: 最短路
Memory Limit: 64 MB
Time Limit: 1000 ms

Powered by:NEFU AB-IN

Link

4243. 传递信息

  • 题意

    机房有 n 台服务器,编号 1∼n。
    其中一些服务器之间可以互相传递信息。
    不同服务器之间传递信息的时间可能不同。
    请你计算,从 1 号服务器发出一个信息,传递到其他所有服务器,所需花费的最短时间。

  • 思路

    从1到所有点的最短路径的最大值

  • 代码

    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
    43
    44
    '''
    Author: NEFU AB-IN
    Date: 2022-04-16 16:28:28
    FilePath: \ACM\Acwing\4243.py
    LastEditTime: 2022-04-16 16:31:22
    '''
    from collections import deque

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


    def spfa():
    q = deque()
    q.appendleft(1)
    st[1] = 1
    dist[1] = 0
    while q:
    u = q.pop()
    st[u] = 0

    for v, w in g[u]:
    if dist[v] > dist[u] + w:
    dist[v] = dist[u] + w
    if st[v] == 0:
    st[v] = 1
    q.appendleft(v)


    n = int(input())
    for i in range(2, n + 1):
    lst = [0, *input().split()]
    for j in range(1, i):
    if lst[j] != 'x':
    g[i].append([j, int(lst[j])])
    g[j].append([i, int(lst[j])])
    spfa()
    ans = -INF
    for i in range(2, n + 1):
    if dist[i] != INF:
    ans = max(ans, dist[i])
    print(ans)
使用搜索:谷歌必应百度