[面试] 每个飞机只有一个油箱, 飞机之间可以相互加油

已知: 每个飞机只有一个油箱, 飞机之间可以相互加油(注意是相互,没有加油机) 一箱油可供一架飞机绕地球飞半圈, 问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从

共5架飞机 1,2,3,4,5

1,2,3号飞机从起点A起飞逆时针飞到全程8分之1加油点D,3号机为其他两架加满油返航。

1,2号继续飞到全程4分之1加油点B,2号机为1号机加满油返航。

1号飞机继续飞行到全程一半F点时,4号飞机从起点A起飞顺时针飞到加油点C,正好接到1号飞机,将自己油箱的油分给1号机一半后掉头与1号机一起往E点飞。

同时5号飞机在起点起飞顺时针飞到E点与1,4号会合将自己油箱剩的油平分,全部回到起点。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
假设需要出动 N 架飞机才能保证至少有一架飞机绕地球一圈回到起飞机场。我们可以考虑将地球分成 N 段,每段需要一架飞机绕一圈。为了方便起见,我们可以将每段长度都设为 1。 现在我们把 N 架飞机排成一列,用 1 表示每架飞机,用 0 表示两架飞机之间的间隔。例如,当 N=4 时,排列方式可以是 10101。这种排列方式表示第 1 架、第 3 架、第 5 架飞机需要绕一圈。 接下来考虑如何在这些飞机之间相互加油,使得至少有一架飞机能绕地球一圈回到起飞机场。我们可以将排列方式连成一个环,即在最后一架飞机后面接上第一架飞机。例如,当 N=4 时,排列方式可以是 10101,连成的环为 101011。 我们发现,如果存在一种排列方式,使得在连成的环上,每相邻两架飞机之间的间隔都是偶数,那么我们就可以通过相互加油的方式,使得所有飞机都能绕地球一圈回到起飞机场。这是因为,如果每相邻两架飞机之间的间隔都是偶数,那么我们可以把所有飞机分成若干组,每组都包含相邻两架飞机之间的一段距离。由于每段距离的长度都是偶数,我们可以用一架飞机绕一圈,同时给这一组中的其他飞机加油,使得它们也能绕地球一圈回到起飞机场。这样,我们就可以依次处理每组飞机,最终使得所有飞机都能绕地球一圈回到起飞机场。 因此,我们只需要找到一种排列方式,使得在连成的环上,每相邻两架飞机之间的间隔都是偶数。不难发现,这种排列方式当且仅当 N 为偶数时存在。因此,当 N 为偶数时,只需要出动 N 架飞机即可保证至少有一架飞机能绕地球一圈回到起飞机场;当 N 为奇数时,需要出动 N+1 架飞机才能保证至少有一架飞机能绕地球一圈回到起飞机场。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值