题意:有一个 [0,L] 的数轴,分布有 n 个休息站,每个休息站坐标为 ai。A、B 两人速度均为 1,他们分别从某个休息站开始,向某个方向走,每人都遍历完两个端点后回到原地。两人只有在休息站才能交错,而不能在路上穿过。求最小时间。
首先发现一个性质:AB 一定会交错两次,总时间即为 2L+max(waitA,waitB),其中 waitA,waitB 分别表示 AB 等待的时间。由于前者为定值,所以可以推出一个结论为,AB 的起点一定相同。于是对于每个起点,我们只需要找出 AB 两人等待时间最短的“第二次交错位置”即可。由于等待的时间即为 AB 路径长度的差,所以一定要求最接近,可以使用双指针或 lower_bound 计算。