HDU 畅通工程续

#include<bits/stdc++.h>
#define inf 0x3f3f3f3f
using namespace std;
int main()
{
    int i,j,n,m,x,y,w,k,p,q;
    int a[205][205];
    while(cin>>n>>m){
        for(i=0;i<n;i++){
            for(j=0;j<n;j++){
                if(i==j) a[i][j]=0;
                else a[i][j]=inf;
            }
        }
        for(i=0;i<m;i++){
            cin>>x>>y>>w;
            if(w<a[x][y]) a[x][y]=a[y][x]=w;
        }
        for(k=0;k<n;k++){
            for(i=0;i<n;i++){
                for(j=0;j<n;j++){
                    a[i][j]=min(a[i][j],a[i][k]+a[k][j]);
                }
            }
        }
        cin>>p>>q;
        if(a[p][q]==inf) cout<<-1<<endl;
        else cout<<a[p][q]<<endl;
    }
    return 0;

猜你喜欢

转载自blog.csdn.net/qq_37016724/article/details/88822499