zoukankan      html  css  js  c++  java
  • 最短路问题

    最短路

      一、单源最短路

          1、边为正值

              ①朴素dijkstra :适用于稠密图,eg(1<N<500,1<M<1e5)                                                     邻接表存图

              ②堆优化dijkstra :适用于稀疏图,点数与边数差不多,eg(1<N,M<1e5)

          2、边可能有负值

              ①bellman_ford :有边数限制的图                                                                                              存图方式随意      可用结构体链表

              ②spfa:应用广泛,可判负环。

      二、多源最短路

          floyd:三重循环,本身是个动态规划算法,在代码实现的时候省去了一维状态。

          原状态是:f[i, j, k]表示从i走到j的路径上除了i, j以外不包含点k的所有路径的最短距离。那么f[i, j, k] = min(f[i, j, k - 1), f[i, k, k - 1] + f[k, j, k - 1]。

          因此在计算第k层的f[i, j]的时候必须先将第k - 1层的所有状态计算出来,所以需要把k放在最外层。

  • 相关阅读:
    Win10开启自带虚拟机
    C# NPOI Word 内容读写
    纯自绘实现的winform下卡片列表
    一个宽带问题
    windows两个命令
    Windows IP 安全策略
    vue自学入门-9 @click后直接跟alert报错
    企业微信创建自建应用-2(手机端)
    企业微信创建自建应用-1(管理端)
    Ngnix实践
  • 原文地址:https://www.cnblogs.com/poo7/p/12245835.html
Copyright © 2011-2022 走看看