最短路模板

来源:互联网 发布:学做淘宝视频哪里看 编辑:程序博客网 时间:2024/05/22 12:18
#include<stdio.h>
#include<string.h>
int a[150][150];
int main()
{
    int N,M;
    int i;
    int j,k;
    int x,y,z;
    while(scanf("%d%d",&N,&M),N&&M)
    {
       for(i=1;i<=N;i++)
            for(j=1;j<=N;j++)
                a[i][j]=99999999;
        for(i=1;i<=M;i++)
        {
            scanf("%d%d%d",&x,&y,&z);

            if(a[x][y]>z)//这个必须加 ,非常重要

                a[x][y]=a[y][x]=z;
        }
        for(k=1;k<=N;k++)
            for(i=1;i<=N;i++)
                for(j=1;j<=N;j++)
                {
                    if(a[i][j]>a[i][k]+a[k][j])
                        a[i][j]=a[i][k]+a[k][j];
                }
        printf("%d\n",a[1][N]);
    }
    return 0;
}
0 0
原创粉丝点击