ET


私信TA

用户名:wbc

访问量:59421

签 名:

人生苦短,我TM直接py

等  级
排  名 62
经  验 10353
参赛次数 3
文章发表 68
年  龄 0
在职情况 学生
学  校 东北大学
专  业 计算机科学与技术

  自我简介:

自2020起转python了。。。 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;
}


 

0.0分

1 人评分

  评论区

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