Bellman_ford有边数限制的最短路问题
这个算法的效率是很低的 用结构体去存去数据 这里引用一个beifen数组
步骤:
1、让所有的距离都置为0x3f3f3f3f 让dis[1]=0
2、迭代k (k为边数的限制)次 然后拷贝memcpy(beifen,dis,sizeof dis)把dis里面的数据备份到beifen里面 防止下面的操作被更新后的dis干扰
3、然后遍历每个边
当dis>0x3f3f3f3f/2时 就是错的了
注意注意 他是有边数限制的 最多有k条边 也就是最多走k步
代码:
为什么写 > 0x3f3f3f3f / 2呢 因为是存在负权边 之前这个点的前一个点是0x3f3f3f3f 但是他们的边权值是负的 因此他可能就小于0x3f3f3f3f 了 因此写 > 0x3f3f3f3f / 2就可以