一个有趣的面试题:伞兵跳伞问题

一道关于伞兵跳伞的难题被提出,要求设计策略使所有伞兵最终聚集。答案是找到伞兵的最小外接圆,圆内的伞兵向圆心移动,直到最后一个到达时,圆心伞兵出发将圆周伞兵集合。特殊情况如n=3或所有伞兵在圆周上也有相应解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这道题是今天同事分享给我们做的,题目挺难的,也挺有意思的,一堆清北的人围在一起讨论了半个多小时,最后还是一个搞过ACM的人想出来了解法。特此把这道题和解法都分享一下。

题目描述

有n个伞兵从飞机上跳伞,伞兵落地后会昏迷一段时间,等到醒来后能看一眼雷达,雷达上能显示包括自己在内所有人的位置,但是雷达上显示的只是相对位置,没有东南西北这种方向,伞兵看完这一次雷达后就再也不能看了。
要求:设计一个策略能让伞兵落地后经过一系列运动最终所有人都走到一起去

补充说明

  1. 可以认为所有伞兵都同时落地,但是每个伞兵昏迷的时间长度不同
  2. 可以认为伞兵的记忆力都非常好,看完雷达之后能够一直记住,而且伞兵走路能够精确的走多少步还有方位。
  3. 不能给伞兵编号,因为每个伞兵都是相同的。(因为如果能编号,则可以直接1号伞兵去寻找其他所有人,剩余的伞兵不动就好)
  4. 伞兵会面之后可以有交流的
  5. 最后这个策略是所有伞兵在跳伞前都知道的。

思路历程

因为每个伞兵都是相同的个体,不能编号,所以一个非常直观的思路就是,需要伞兵醒来之后,看到的雷达上的图形,去在图中寻找一个其他伞兵也能找的点
所以一开始想法是找所有伞兵的中点,但是考虑到每个伞兵醒来的时间不一致,这就导致了先前醒来的伞兵在行动之后,中点会发生变化。所以士兵要去的这个点还必须随着士兵的移动不发生改变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值