(最短路径 Floyd)HDU 2544 最短路

来源:互联网 发布:软件开发培训学校 编辑:程序博客网 时间:2024/05/09 15:19

查看原题

题意

最短路径

思路

Floyd

代码

#include <iostream>using namespace std;int main(){    int n,m,a,b,c;    while(cin>>n>>m&&m+n!=0){        int map[105][105];        for(int i=1;i<=n;i++){            for(int j=1;j<=n;j++){                if(i==j){                    map[i][j]=0;                }else{                    map[i][j]=99999;                }            }        }        while(m--){            cin>>a>>b>>c;            if(c<map[a][b]){                map[a][b]=map[b][a]=c;            }        }        for(int i=1;i<=n;i++){//核心代码            for(int j=1;j<=n;j++){                for(int k=1;k<=n;k++){                    if(map[j][k]>map[j][i]+map[i][k])                    map[j][k]=map[j][i]+map[i][k];                }            }        }        cout<<map[1][n]<<endl;    }    return 0;}
0 0