最短路模板

今天总结了几个最短路的算法模板,如下所示:

1、floyd 的代码模板:

int n,m;
int d[MAX][MAX];//d[u][v]表示权值,不存在的时候设为INF,不过d[i][i]=0;
void floyd()
{
    for(int k=1;k<=n;k++)
        for(int i=1;i<=n;i++)
           for(int j=1;j<=n;j++)
    {
        d[i][j]=min(d[i][j],d[i][k]+d[k][j]);
    }
}

2、dijkstra的代码模板:

void dijkstra()
{
   book[1]=1;
   for(int i=1;i<=n-1;i++)
   {
       minn=inf;
       for(int j=1;j<=n;j++)
       {
           if(book[j]==0&&dis[j]<minn)
           {
               minn=dis[j];
               u=j;
           }
       }
       book[u]=1;
       for(int v=1;v<=n;v++)
       {
          if(e[u][v]<inf)
          {
              dis[v]=min(dis[v],dis[u]+e[u][v]);
          }
       }
   }
}

剩下一些等明天再更新了…………

posted @ 2018-06-03 22:49  better46  阅读(142)  评论(0编辑  收藏  举报