1.貌似没有部分分,考虑下正解:考虑给定所有人的位置和消息持有者的编号,求答案。显然最左边和最右边的人只会往向互相靠近的方向移动。一个最简单的策略是,当消息持有者和一个人分享消息之后,两个人立马开始反方向行动,直到让所有人都拥有消息。
2.这个策略的最优性可以通过两个参数来定义:设 A 为最左边的人距离最左边持有消息的人的距离,B 为最右边的人距离最右边持有消息的人的距离。而第一次分享消息之后,我们可以通过分别解决充分性和必要性证明还需要 max(A,B)/2 秒。我们观察到 max(A,B)/2 秒的组合意义是,两个人不立刻折返,而是先移动到两侧的人的中点后再折返,而这个组合意义也是可以实际取到的。
所以我们现在可以总结出策略:让消息持有者和另一个人在中间碰面,然后和两侧的人分别汇合。于是我们只关心消息持有者距离中点的距离,和剩下所有人到中点的最小距离