您的位置:首页 > 其它

Floyd算法,输出点x到y的最小距离

2016-06-30 21:51 239 查看
//Floyd算法,输出点x到y的最小距离

#include<iostream>

using namespace std;

const int maxn=10001,maxm=1000001;

#define zhf 100000000

int d[maxn][maxn],a[maxn][maxn],p[maxn];

int main(){

    int i,j,k,m,n;

    cin>>n>>m;

    for(i=1;i<=n;i++)

        for(j=1;j<=n;j++)

            if(i!=j)d[i][j]=d[j][i]=zhf;

    for(i=1;i<=m;i++){

        int x,y,z;

        cin>>x>>y>>z;

        d[x][y]=d[y][x]=z;

    }

    for(k=1;k<=n;k++)    

        for(i=1;i<=n;i++)

            for(j=1;j<=n;j++)

                if(d[i][j]>d[i][k]+d[k][j])

                    d[i][j]=d[i][k]+d[k][j];

    int x,y;

    while(cin>>x>>y){

        cout<<d[x][y]<<endl;

    }

    

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: