P1007 独木桥 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
模拟一下,这是初始状态:
在第一时刻,A士兵和B士兵同时向外挪一步:
A士兵已经撤离完成,B士兵还没有,因此B士兵还需要在第二时刻继续撤离:
A,B士兵撤离桥面最短用时2秒。
现在来模拟最长撤离时间:
复原:
在第一时刻,A,B士兵都向对面挪了一步:
第二时刻:
第三时刻:
第四时刻(撤离完成):
因此最长撤离时间是4秒钟。
解题思路
在初始状态的时候,B出左端点的距离是3,A出右端点的距离是4,我们取一个最大值,就是最长撤离时间。
A出左端点的距离1,B出右端点的距离是2,我们仍然取一个最大值,是最小撤离时间。
两个撤离时间取一个较小值,就是最小撤离时间。A出左端点的距离1,B出右端点的距离是2,我们仍然取一个最大值,是最小撤离时间。
两个撤离时间取一个较小值,就是最小撤离时间。
我们求当前士兵x出左端点的距离可以通过下标直接求出,比如A士兵的下标是1,那么它出左端点只需要1步。
那A士兵出右端点需要多少步呢? 我们可以通过一个公式求出:
验证:5-1=4步
我们在这两个步数谁小,士兵就靠近哪一端。例如A士兵就靠近左端。