题解 | 【模板】单源最短路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不行,可能是点不是连续的吧

全部评论

相关推荐

07-18 18:45
已编辑
中山职业技术学院 Java
投递TP-LINK等公司7个岗位
点赞 评论 收藏
分享
07-02 10:39
门头沟学院 Java
Steven267:说点真实的,都要秋招了,还没有实习,早干嘛去了,本来学历就差,现在知道急了,而且你这个简历完全可以写成一页,劣势太大了,建议转测试
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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