首页 > 学院 > 开发设计 > 正文

hdu 2544最短路Floyd

2019-11-08 02:42:13
字体:
来源:转载
供稿:网友
////  main.cpp//  图论////  Created by liuzhe on 16/8/15.//  Copyright © 2016年 my_code. All rights reserved.//#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#include <cmath>#include<utility>#include<queue>using namespace std;const int N=105;const int INF=2147483646;int n, m, d[N][N];inline void read_graph(){    for(int i=1; i<=n; ++i){        d[i][i] = INF;        for(int j=i+1; j<=n; ++j)            d[i][j]=d[j][i]=INF;    }    int a,b,c;    for(int e=1; e<=m; ++e){        scanf("%d%d%d",&a,&b,&c);        d[a][b]=d[b][a]=c;    }}inline void Floyd(int src){    for(int k=1; k<=n; ++k){        for(int i=1; i<=n; ++i){            for(int j=1; j<=n; ++j)                if(d[i][k]<INF && d[k][j]<INF){  //防止溢出                    d[i][j] = min(d[i][j], d[i][k]+d[k][j]);                }        }    }}int main(){    int a,b,c;    while(~scanf("%d%d",&n,&m)&&n+m){        read_graph();        Floyd(1);        PRintf("%d/n", d[1][n]);    }    return 0;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表