华为OD机试D卷 --运输时间--24年OD统一考试(Java & JS & Python & C & C++)
文章目录
-
- 题目描述
- 输入描述
- 输出描述
- 用例1
- 题目解析
- 算法源码
题目描述
M(1 ≤ M ≤ 20)辆车需要在一条不能超车的单行道到达终点,起点到终点的距离为 N(1 ≤ N ≤ 400)。
(图片来源网络,侵删)
速度快的车追上前车后,只能以前车的速度继续行驶,求最后一辆车到达目的地花费的时间。
注:每辆车固定间隔 1 小时出发,比如第一辆车 0 时出发,第二辆车 1 时出发,依次类推
输入描述
第一行两个数字:M N,分别代表车辆数和到终点的距离,以空格分隔
接下来 M 行,每行一个数字 S,代表每辆车的速度。0
输出描述
最后一辆车到达目的地花费的时间
用例1
输入
2 11
3
2
输出
5.5
说明
2辆车,距离11,0时出发的车速度快,1时出发的车,到达目的地花费5.5
题目解析
这个问题可以通过模拟每辆车的行驶过程来解决。由于速度较快的车在追上前面的车后,只能以较慢的速度行驶,因此,关键在于确定每辆车实际行驶的时间。对于每一对相邻的车,后车追上前车的时刻取决于两车之间的初始距离和它们的速度差。一旦后车追上,两车就以相同的速度行驶直到终点。因为每辆车之间固定间隔1小时出发,所以还需要考虑这个因素来确定最后一辆车的实际行驶情况。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。