最短路径(Floyd 模板题)

时间:2023-03-08 20:59:32

题目:http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2143&cid=1186

 #include<stdio.h>
#include<string.h>
const int INF=<<;
int map[][];
int main()
{
int n,m,i,j,k,u,v,w;
while(~scanf("%d%d",&n,&m))
{
for(i=; i<=n; i++)
{
for(j=; j<=n; j++)
map[i][j]=INF;
map[i][i]=;
}
while(m--)
{
scanf("%d%d%d",&u,&v,&w);
if(map[u][v]>w)
{
map[u][v]=w;
map[v][u]=w;
}
}
for(k=; k<=n; k++)
for(i=; i<=n; i++)
for(j=; j<=n; j++)
if(map[i][k]+map[k][j]<map[i][j])
map[i][j]=map[i][k]+map[k][j];
printf("%d\n",map[][n]);
}
}