单源点最长路

本文总结了三种经典的最短路径算法:Dijkstra、Bellman-Ford和Ford多源点最短路算法。Dijkstra不适用于负权边,而Bellman-Ford能处理负权边但不能存在负权环。对于求解单源点最长路,可以将边权设为负,使用原最短路算法。同时,SPFA和Ford算法能够应对含有负权边的情况,但必须排除负权环。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最短路算法总结

1.dijkstra

单源点最短路
思想:每次取到源点最短的点,因为没有负边,所以不能再被其它点优化

所以该图不能有负边,可以有环

2.贝尔曼福德

可以用负边,当不能有负环路,如果有负环路,会一直松弛下去,没有最短路

负环路:环路权重之和为负数

3.ford 多源点最短路

动态规划
可以有负权边
负权环是不是求不出最短路

单源点最长路
把边改为负边,然后继续用原来的算法求最短路即可

1.dijkstra 不能通过 边权为负来求最长路
样例,以A为起点,A-D的边先出堆,所以D的边权先被确定了,无法被C再优化
在这里插入图片描述

  1. spfa,ford可以
    但图中不能有环,不然就会有负权环
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值