【JS】运输时间(200) |思路参考+代码解析(C++)
题目
M(1 ≤ M ≤ 20)辆车需要在一条不能超车的单行道到达终点,起点到终点的距离为 N(1 ≤ N ≤ 400)。
速度快的车追上前车后,只能以前车的速度继续行驶,求最后一辆车到达目的地花费的时间。
注:每辆车固定间隔 1 小时出发,比如第一辆车 0 时出发,第二辆车 1 时出发,依次类推
题目输入
第一行两个数字:M N,分别代表车辆数和到终点的距离,以空格分隔
接下来 M 行,每行一个数字 S,代表每辆车的速度。0 < S < 30
题目输出
最后一辆车到达目的地花费的时间
实例
输入 | 2 11 3 2 |
输出 | 5.5 |
说明 | 2辆车,距离11,0时出发的车速度快,1时出发的车,到达目的地花费5.5 |
题目解析
题目
题目代码
// 代码有问题
#include <iostream>
#include <vector>using namespace std;int main() {int n, m;cin >> n >> m;vector<int> w(n);for (int i = 0; i < n; i++) {cin >> w[i];}double res = 0;for (int i = 0; i < n; i++) {double t = (double) m / w[i];if (i == 0 || t >= res - 1) {res = t;}if(t < res - 1)res -- ;}cout << res << "\n";return 0;
}