刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

3.取行李
一般机场里,航班到达后,旅客们会去到达区的行李传送带那里取自己的行李。
现假设有一座特别的机场,每条传送带只有一个取行李的窗口。旅客们必须排好队,逐一到窗口取自己的行李。但是当某人到窗口前,发现行李不是自己的,那人就只好走到队尾去等下一次机会。此时那件行李会一直等在窗口,直到它的主人把它取走。假设每一次认领需要 1 分钟,本题就要求你计算传送带清空需要的时间、以及旅客们的平均等待时间。
例如,假设行李 i 属于旅客 i。行李的到达顺序是 1、2、3,旅客的到达顺序是 2、1、3。则 1 号行李要等 2 分钟才能被主人 1 号旅客取走。这时行李队列中有 2、3,旅客队列中是 3、2。于是 2 号行李还要等 2 分钟才能被 2 号旅客取走,最后 3 号在第 5 分钟取走行李。旅客们的平均等待时间是 (2+4+5)/3 ≈ 3.7。
时间限制:1000
内存限制:65536
输入
输入首先在第一行给出一个正整数 N(≤ 103)。下一行给出 N 个数字,是 [1, N] 区间内整数的一个重排列,表示旅客队列。这里我们假设行李队列是按 1、2、……、N 有序的,并且行李 i 属于旅客 i。一行中数字间以空格分隔。
输出
在一行中输出传送带清空需要的时间、以及旅客们的平均等待时间(输出小数点后 1 位)。数字间以 1 个空格分隔,行首尾不得有多余空格。
样例输入
5
3 5 1 2 4
样例输出
9 6.0

使用微信搜索喵呜刷题,轻松应对考试!

答案:

解析:

本题是一道模拟题,主要考察的是对数据结构、算法和逻辑的理解。我们需要模拟一个机场传送带清空的过程,对于每一个到达的旅客,如果他拿到的行李不是自己的,就需要重新排队。这个过程需要记录当前的行李和旅客的状态,然后计算总的等待时间和平均等待时间。主要步骤如下:

  1. 读入旅客数量和旅客队列。
  2. 模拟每一个旅客取行李的过程,如果行李不是他的,则记录等待时间,并更新行李和旅客的状态。同时,记录总的等待时间和总的旅行时间。
  3. 计算平均等待时间并输出结果。

需要注意的是,这个问题需要仔细处理各种边界情况和特殊情况,确保程序的正确性和稳定性,从而得到正确的结果。

创作类型:
原创

本文链接:3.取行李一般机场里,航班到达后,旅客们会去到达区的行李传送带那里取自己的行李。现假设有一座特别的机

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share