4243. 传递信息
摘要
Title: 4243. 传递信息
Tag: 最短路
Memory Limit: 64 MB
Time Limit: 1000 ms
Powered by:NEFU AB-IN
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)