牛客OI周赛5-提高组 wpy的请求 (spfa变形求负权通路)
wpy的请求 spfa变形
题目大意:给一个n个点,m条边的有向图,可能有负权边,现在要把负边权都变成非负,
并且使得原图中的任意两点u,v最短路经过路径不变并且使得原图中的任意两点u,v最短路经过路径不变
解题思路:解法就是建立一个超级原点(也就是0节点),与所有点相连,且边权值为0,然后跑一遍spfa(),然后边权答案就是 dis[u]-dis[v]+w。
这是因为spfa的松弛操作的条件是 dis[v]>dis[u]+w 所以松弛后 dis[u]-dis[v]+w>=0 是一定成立的,
所
原创
2020-07-30 10:08:24 ·
211 阅读 ·
1 评论