Floyd

#include <iostream>
#define INF 9999999
using namespace std;

int main()
{
    int e[51][51],s,t,d,n,m;//n个城市,m条路
    cin>>n>>m;

    for(int i=1;i<=50;i++)
    {
        for(int j=1;j<=50;j++)
        {
            if(j!=i)
            {
                e[i][j]=INF;
            }
            else e[i][j]=0;
        }
    }

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

        cin>>s>>t>>d;

        e[t][s]=e[s][t]=d;
    }

    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            for(int k=1;k<=n;k++)
                {
                    if(e[k][j]>e[k][i]+e[i][j])
                        e[k][j]=e[k][i]+e[i][j];
                }
                cout<<"  ";
                for(int i=1;i<=n;i++)
                    cout<<i<<" ";
                cout<<endl<<1<<" ";

    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            cout<<e[i][j]<<" ";
        }
        cout<<endl<<i+1<<" ";
    }

    return 0;
}

posted @ 2018-03-10 13:09  LandingGuys  阅读(88)  评论(0编辑  收藏  举报