题解 | 【模板】单源最短路1
【模板】单源最短路1
https://www.nowcoder.com/practice/f24504c9ff544f7c808f76693cc34af8
import sys import heapq n,m = map(int,input().split()) graph = [[] for _ in range(5001)] for _ in range(m): u,v = map(int,input().split()) graph[u].append(v) graph[v].append(u) # 第二种方法 # 每次只辐射一个点,将待辐射点加入栈 visited = set() curr = [(0,1)] heapq.heapify(curr) while curr: dist,node = heapq.heappop(curr) if node == n: print(dist) sys.exit() for neighbor in graph[node]: if neighbor not in visited: visited.add(neighbor) heapq.heappush(curr,(dist+1,neighbor)) print(-1)