大二带专生


私信TA

用户名:dotcpp0676254

访问量:549

签 名:

等  级
排  名 9265
经  验 1168
参赛次数 0
文章发表 18
年  龄 0
在职情况 学生
学  校 职业技术学院
专  业

  自我简介:

解题思路:

注意事项:

参考代码:

#include<iostream>

#include<cstring>

#include<algorithm>

using namespace std;


const int N = 55,inf=1e9+10;

int g[N][N], n;




void floyd()

{

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

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

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

                g[i][j] = min(g[i][j], g[i][k] + g[k][j]);

}


int main()

{

    scanf("%d", &n);

   

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

    {

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

        {

            scanf("%d", &g[i][j]);

            if (g[i][j] == 0&&i!=j)

                g[i][j] =inf;

        }

    }


    floyd();


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

    {

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

        {

            if (i == j)

                g[i][j] = 0;

            if (g[i][j] > inf / 2)

                printf("-1 ");

            else

                printf("%d ", g[i][j]);

        }

         puts("");

    }

    puts("");

    return 0;

}


 

0.0分

1 人评分

  评论区

  • «
  • »