参考:https://www.bilibili.com/video/BV1a54y1B7aQ
为什么不能有负边权?
https://blog.csdn.net/sugarbliss/article/details/86498323
找到距离源点距离最小的点,就确定距离,不能根据后续的点再进行更新,所以后续的负边权更新不到中转点。
不走回头路。
A开始,确定C,然后就无法通过A->B->C的路径来更新C了。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1898d6f7b2c5f92e73e90e34486b2665.png)
算法思路
所有的点作为中转点更新蓝点:
找到距离源点距离最小的点,作为中转点,洗白。
中转点更新剩余蓝点到源点距离。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/144de8660f3dad2397153f6b8c5fbeb9.png)