金华集训

  一、 最短路

  •   Floyd 算法,求解图中任意两点的最短路,可处理有向图负权,时间复杂度 Θ(n3)
  •   Dijkstra 算法,求解图中某一点到其余点的最短路,时间复杂 度 Θ(mlog2 n)
  •   Bellman-Ford 算法,求解图中某一点到其余点的最短路,时间 复杂度 Θ(nm)
  •      启发式搜索算法A*

  (一)Floyd 算法

     思想: 从i号顶点到j号顶点 只经过 前 k号 顶点的路径引入k点作中间结点,更新最短路径。

     核心:DP   dis k+1,i,j = min { dis k,i,j  ,  dis k,i,k+1 + dis k,k+1,j  }

    

1 for(int k=1;k<=n;k++)
2         for(int i=1;i<=n;i++)
3             for(int j=1;j<=n;j++)
4                 dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);

 

原文地址:https://www.cnblogs.com/RR-Jin/p/11621212.html