logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

城市间货物运输Ⅲ-卡玛(Bellman_ford之单源有限最短路)

题目要求最多经过 k 个城市的条件下,而不是一定经过k个城市,也可以经过的城市数量比k小,但要最短的路径。对所有边松弛一次,相当于计算 起点到达 与起点一条边相连的节点 的最短距离。那么经过 k 个城市,则共计 k + 1条边,那么最多需要松弛 k + 1次。使用队列优化后的 Bellman_ford 算法,关键在于 如何控制松弛 k 次,可以用一个变量 que_size 记录每一轮松弛入队列的所

#算法#图论#c++
城市间货物运输Ⅰ-卡玛(Bellman_ford 队列优化算法(SPFA))

Bellman_ford 算法每次松弛 都是对所有边进行松弛,但真正有效的松弛,是基于已经计算过的节点在做的松弛,所以 Bellman_ford 算法 每次都是对所有边进行松弛,其实是多做了一些无用功。一般来说,SPFA 的时间复杂度为 O(K * N) K 为不定值,因为 节点需要计入几次队列取决于 图的稠密度。如果图是一条线形图且单向的话,每个节点的入度为1,那么只需要加入一次队列,这样时间复

#算法#c++#图论
到底了