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

飞码创造者 2024-07-04 11:05:02 阅读 61

文章目录

题目描述

输入描述

输出描述

用例1

题目解析

算法源码

题目描述

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

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

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

输入描述

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

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

输出描述

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

用例1

输入

2 11

3

2

输出

5.5

说明

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

题目解析

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



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。