大二带专生


私信TA

用户名:dotcpp0676254

访问量:343

签 名:

等  级
排  名 8772
经  验 1147
参赛次数 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 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区