zoukankan      html  css  js  c++  java
  • Dijkstra算法为什么权值不能为负

        Dijkstra算法当中将节点分为已求得最短路径的集合(记为S)和未确定最短路径的个集合(记为U),
    归入S集合的节点的最短路径及其长度不再变更,如果边上的权值允许为负值,那么有可能出现当与S
    内某点(记为a)以负边相连的点(记为b)确定其最短路径时,它的最短路径长度加上这条负边的权值
    结果小于a原先确定的最短路径长度(意思是原先从a0---a已经确定一个最短路径,而此时的边权值为负,则

    此步骤中的边权计算结果必定小于已经确定了的路径长度),但是a在Dijkstra算法下是无法更新的,由此便可能得

    不到正确的结果。求带负权值边的单源最短路径可以用贝尔曼-福特算法。

  • 相关阅读:
    gauss消元
    POJ1229 域名匹配
    HDU3487 play with chain
    POJ1185 炮兵阵地
    POJ2411
    sgu233 little kings
    树形DP初步-真树1662
    树形DP初步-二叉树1661
    c++——string类用法
    UVa1354 ——天平难题
  • 原文地址:https://www.cnblogs.com/rickhsg/p/3666818.html
Copyright © 2011-2022 走看看