ACM模板——Floyd算法

来源:互联网 发布:业界良心音乐软件 编辑:程序博客网 时间:2024/06/04 23:35

Floyd算法是用于求解所有点对之间的最短距离,如果只需要求一个起点到所有其他点的最短距离应该使用Dijstra算法。

Floyd核心Logic

注:m[f][t] 意为 从f出发到t点的距离. 输入可能是边的形式或者是图的形式,需要灵活处理。

for(int k=1;k<=n;k++)          {              for(int f=1;f<=n;f++)              {                  for(int t=1;t<=n;t++)                  {                      if(f==t||f==k||t==k) continue;                      if(m[f][k]!=INF&&m[k][t]!=INF)                      {                          int total=m[f][k]+m[k][t];                          if(total<m[f][t]||m[f][t]==INF)                          {                              m[f][t]=total;                          }                      }                  }              }          } 






0 0
原创粉丝点击