牛客国庆集训派对Day6 最短路 (最小生成树 + lca + bfs)
题目链接:点此跳转题目大意:给一个连通图,每次询问两点间最短路。每条边的长度都是1。第一行两个整数n和m,表示图的点数和边数(1≤ n≤ 100000, 1≤ m≤ n+100)。解题思路:因为这道题边的范围比较特别,1≤m≤n+100。我们先假设m恰好是n-1即图为一棵树,那么我们可以通过最近公共祖先求得两点的最近距离为dep[a]+dep[b]-2*dep[lca(a,b)]。现在又多出来100条边,我们要怎么处理呢?答案是:bfs 直接对这些边的一个端点开始暴力搜索最短路即可。Code:
原创
2020-10-05 19:35:47 ·
1007 阅读 ·
3 评论