华为OD机试D卷 --运输时间--24年OD统一考试(Java & JS & Python & C & C++)

07-03 1120阅读

文章目录

    • 题目描述
    • 输入描述
    • 输出描述
    • 用例1
    • 题目解析
    • 算法源码

题目描述

M(1 ≤ M ≤ 20)辆车需要在一条不能超车的单行道到达终点,起点到终点的距离为 N(1 ≤ N ≤ 400)。

华为OD机试D卷 --运输时间--24年OD统一考试(Java & JS & Python & C & C++)
(图片来源网络,侵删)

速度快的车追上前车后,只能以前车的速度继续行驶,求最后一辆车到达目的地花费的时间。

注:每辆车固定间隔 1 小时出发,比如第一辆车 0 时出发,第二辆车 1 时出发,依次类推

输入描述

第一行两个数字:M N,分别代表车辆数和到终点的距离,以空格分隔

接下来 M 行,每行一个数字 S,代表每辆车的速度。0

输出描述

最后一辆车到达目的地花费的时间

用例1

输入
2 11
3
2
输出
5.5
说明
2辆车,距离11,0时出发的车速度快,1时出发的车,到达目的地花费5.5

题目解析

这个问题可以通过模拟每辆车的行驶过程来解决。由于速度较快的车在追上前面的车后,只能以较慢的速度行驶,因此,关键在于确定每辆车实际行驶的时间。对于每一对相邻的车,后车追上前车的时刻取决于两车之间的初始距离和它们的速度差。一旦后车追上,两车就以相同的速度行驶直到终点。因为每辆车之间固定间隔1小时出发,所以还需要考虑这个因素来确定最后一辆车的实际行驶情况。

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]