考虑以下调用序列:
init(6, 4, [20, 10, 40, 0], [5, 20, 20, 30], 10, 4, [0, 1, 3, 6])
忽略巴士 (它还没有确定出发时间),下表列出了巴士到达每个调度站的期望时间和实际时间:
巴士到达调度站 的时间就是它计划从机场出发的时间。也就是说,对于 ,。
到达调度站 的期望时间和实际时间计算如下:
- 调度站 的期望到达时间:
- 调度站 的到达时间:
- 巴士 和 早于巴士 到达调度站 ,所以 。
- 巴士 早于巴士 到达调度站 ,所以 。
- 巴士 、巴士 和巴士 早于巴士 到达调度站 ,所以 。
- 没有比巴士 更早到达调度站 的巴士,所以 。
巴士 行驶一公里需要 秒,现在计划在第 秒从机场出发。
这种情况下,下表列出每辆巴士的到达时间。
常规巴士期望和实际到达时间的唯一变动用下划线标注。
由此可知巴士 在第 秒到达酒店。
因此,函数应该返回 。
巴士 现在计划在第 秒从机场出发。
这种情况下,与初始表格相比,常规巴士的到达时间没有变化。
下表列出了到达时间。
巴士 和较慢的巴士 同时到达调度站 ,然后巴士 超过了巴士 。
接着,巴士 在调度站 和 之间行驶时被巴士 压着,导致它到达调度站 的时间是第 秒,而不是第 秒。
在过了调度站 之后,巴士 被巴士 压着,直到它们到达酒店。
巴士 在第 秒到达酒店。
因此,函数应该返回 。
将每辆巴士从机场出发到不同距离的时间画成折线图。
图中 x 轴表示从机场出发的距离(以公里为单位),y 轴表示时间(以秒为单位)。
竖的虚线标注了调度站的位置。
不同颜色的实线(标注了巴士的编号)表示四辆常规巴士。
黑色的点线表示备用巴士。
arrival_time(0) |
arrival_time(50) |
|
|