CF 如此多的二分 + 贪心,但我就是想不出来……
首先二分答案。
难点是在如何判断答案合法。
显然正着做是不行的,所以我们考虑倒着做。
我们考虑现在二分的距离为 L,枚举到第i 步,如果两个快递员中至少有一个的起点出现在 [li,ri] 的范围内,且两个快递员相距不超过L,那么是合法的。
现在考虑从 [li+1,ri+1] 向[li,ri]转移。
显然,两个快递员中只有一个快递员动,而不动的那个快递员必须已经在[xi−L,xi+L]。
我们考虑下面两种情况:
如果 xi∈[li,ri],那么只要有一个快递员已经在[xi−L,xi+L] 里即可,我们让另一个快递员走到 xi,而因为xi∈[li,ri],所以这位快递员在[li,ri] 里了,且两个快递员相距不超过L。所以li=xi−L,ri=xi+L。
如果 xi∈/[li,ri],考虑不动的快递员,首先必须在[xi−L,xi+L] 里,又由于 xi∈/[li,ri],故他也必须在[li,ri] 里,而到 xi 的那个快递员没有什么特殊的要求了。所以li=max(li+1,xi−L),ri=min(ri+1,xi+L)。