今天总结了几个最短路的算法模板,如下所示:
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]);
}
}
}
}
剩下一些等明天再更新了…………