题解 | 【模板】单源最短路1

import sys
import heapq
n, m = map(int, input().split())
edg = [[] for i in range(5100)]
vis = [0 for i in range(5100)]
for i in range(m):
    u, v = map(int, input().split())
    edg[u].append(v)
    edg[v].append(u)

q = []
heapq.heappush(q, (0, 1, 1))

while q:
    t = heapq.heappop(q)
    cnt, u, v = t[0], t[1], t[2]
    if vis[v]: continue
    vis[v] = cnt
    points = edg[v]
    for poi in points:
        if vis[poi] : continue
        heapq.heappush(q, (cnt + 1, v, poi))

if vis[n] == 0:
    vis[n] = -1
print(vis[n])

不知道为什么要开很大的数组edg = [[] for i in range(5100)],我用n+100不行,可能是点不是连续的吧

全部评论

相关推荐

10-20 11:11
辽宁大学 营销
点赞 评论 收藏
分享
10-28 17:30
已编辑
华东交通大学 Java
iori2333:这太正常了 我字节面了四五轮 没有一次是在官网投递 都是hr主动捞
秋招笔试记录
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务