解题思路:
正常并应该直接迪杰斯特拉或者弗洛伊德算法求最短时间。。。
但是,,这道题,,不需要求最短路径,直接输出就好?????????
戈多最快到达的时间是多少?不算最短时间??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 人评分