fix: error saving the edges

This commit is contained in:
kyshen
2024-09-06 23:59:51 +08:00
parent e391a24729
commit e24c307c07

View File

@ -430,10 +430,10 @@ import collections
def main(): def main():
n, m = map(int, input().strip().split()) n, m = map(int, input().strip().split())
edges = [] edges = [[] for _ in range(n + 1)]
for _ in range(m): for _ in range(m):
src, dest, weight = map(int, input().strip().split()) src, dest, weight = map(int, input().strip().split())
edges.append([src, dest, weight]) edges[src].append([dest, weight])
minDist = [float("inf")] * (n + 1) minDist = [float("inf")] * (n + 1)
minDist[1] = 0 minDist[1] = 0
@ -443,19 +443,14 @@ def main():
while que: while que:
cur = que.popleft() cur = que.popleft()
visited[cur] = True visited[cur] = False
updated = False for dest, weight in edges[cur]:
for src, dest, weight in edges: if minDist[cur] != float("inf") and minDist[cur] + weight < minDist[dest]:
if minDist[src] != float("inf") and minDist[src] + weight < minDist[dest]: minDist[dest] = minDist[cur] + weight
minDist[dest] = minDist[src] + weight
updated = True
if visited[dest] == False: if visited[dest] == False:
que.append(dest) que.append(dest)
visited[dest] = True visited[dest] = True
if not updated:
break
if minDist[-1] == float("inf"): if minDist[-1] == float("inf"):
return "unconnected" return "unconnected"
return minDist[-1] return minDist[-1]