ET


私信TA

用户名:wbc

访问量:22136

签 名:

我又双叒叕回来看了一眼

排  名 29
经  验 6556
参赛次数 3
文章发表 67
年  龄 0
在职情况
学  校 DLMU
专  业 网络工程

  自我简介:

C++兼容C,所以不要问为什么我所有的提交都是C++的.... 不AC,毋宁死,代码越短越好,思路越清奇越好hhhhhhhh

解题思路:

正常并应该直接迪杰斯特拉或者弗洛伊德算法求最短时间。。。

但是,,这道题,,不需要求最短路径,直接输出就好?????????

戈多最快到达的时间是多少?不算最短时间??wtf??


注意事项:
@管理员,,题是不是出错了。。


参考代码:

这个是过了的。。

#include <iostream>

using namespace std;

int main() {
    int n, x;
    int m, j, k;
    double map[502][502] = {0}, v;
    cin >> n >> x;
    for (m = 1; m <= n; ++m) {
        for (j = 1; j <= n; ++j) {
            cin >> map[m][j];
        }
    }
    for (m = 1; m <= n; ++m) {
        for (j = 1; j <= n; ++j) {
            cin >> v;
            if (v == 0)
                continue;
            map[m][j] /= v;
        }
    }
    printf("%.2lf\n", map[1][x]);
    return 0;
}

这个是讲道理应该对的

#include <iostream>

using namespace std;

int main() {
    int n, x;
    int m, j, k;
    double map[502][502] = {0}, v;
    cin >> n >> x;
    for (m = 1; m <= n; ++m) {
        for (j = 1; j <= n; ++j) {
            cin >> map[m][j];
        }
    }
    for (m = 1; m <= n; ++m) {
        for (j = 1; j <= n; ++j) {
            cin >> v;
            if (v == 0)
                continue;
            map[m][j] /= v;
        }
    }
    for (k = 1; k <= n; ++k) {
        for (m = 1; m <= n; ++m) {
            for (j = 1; j <= n; ++j) {
                if (map[m][j] > map[m][k] + map[k][j])
                    map[m][j] = map[m][k] + map[k][j];
            }
        }
    }
    printf("%.2lf\n", map[1][x]);
    return 0;
}


C语言网提供「C语言、C++、算法竞赛」在线课程,全部由研发工程师或ACM金牌退役选手亲自授课,以视频+配套题目的学练同步模式教学,强化动手,并提供增值服务!

  评论区

问一下n啥意思
2019-03-20 19:36:25 | |
23
2019-03-20 19:36:08 | |
多谢反馈~ 
数据已经修改~
2019-03-18 09:33:24 | |
  • «
  • 1
  • »