解题思路:

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

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

戈多最快到达的时间是多少?不算最短时间??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;
}


点赞(2)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 5 条评论

huahua 5年前 回复TA
@验题君 .....我tm还加了堆优化 还是不过 要死了
养成中 5年前 回复TA
问一下n啥意思
养成中 5年前 回复TA
23
ET 5年前 回复TA
@验题君 查了三个小时,,研究为什么不过,,喂110吗,,这里有题搞我??
验题君 5年前 回复TA
多谢反馈~ 
数据已经修改~