heNoIdidntthellpmebecauseheNoIdidnttwantany()

给出一个图和起始点、终止点圖中边不仅有权值还有费用,求满足费用约束条件的从起始点到终止点的最短路

由于有重边,所有不能用邻接矩阵存储图这里采用的昰正向表(又叫“前向星”,forward star representation)由于输入的边关于始端是乱序的,所以只能先得到边列表再通过边列表算出正向表的A数组(A[i]表示以i为始端的边的末端在B数组中的上界)。

同样由于有重边只能采用基于边的堆优化的Dijkstra算法。同时由于满足收费小于k的最优解不是全局最优解,故定理“最短路的子路径也是最短路”不成立一个节点的最短路是不能确定的(因为还有收费的问题),所以要取消vis数组对一个節点找到最短路后仍然允许改变。

给出一个图和起始点、终止点圖中边不仅有权值还有费用,求满足费用约束条件的从起始点到终止点的最短路

由于有重边,所有不能用邻接矩阵存储图这里采用的昰正向表(又叫“前向星”,forward star representation)由于输入的边关于始端是乱序的,所以只能先得到边列表再通过边列表算出正向表的A数组(A[i]表示以i为始端的边的末端在B数组中的上界)。

同样由于有重边只能采用基于边的堆优化的Dijkstra算法。同时由于满足收费小于k的最优解不是全局最优解,故定理“最短路的子路径也是最短路”不成立一个节点的最短路是不能确定的(因为还有收费的问题),所以要取消vis数组对一个節点找到最短路后仍然允许改变。

参考资料

 

随机推荐