以优先队列优化的迪杰斯特拉算法为例
最短路中我们是这么更新的
int to = e[i].to;
if(dis[to] > dis[x] + e[i].w){
dis[to] = dis[x] + e[i].w;
q.push({dis[to], to});
}
现在我们只需要改成即可
int to = e[i].to;
ll z = max(e[i].w, dis[x]);
if(dis[to] > z){
dis[to] = z;
q.push({dis[to], to};
}
这时候 dis[x]dis[x]dis[x] 表示起点到 xxx 最短路上的最大边权值
博客以优先队列优化的迪杰斯特拉算法为例,介绍了最短路更新方式,更新后 dis[x] 表示起点到 x 最短路上的最大边权值。
1224

被折叠的 条评论
为什么被折叠?



