这不比 A 火?这不比 A 火?这不比 A 火?这不比 A 火?
考虑每次加入一个 (Ai,Bi) 并动态维护答案。考虑维护 L(x) 表示右端点为 x 时左端点的最大值,那么 ans=min{x−L(x)}。显然 L(x) 单调不降。
假设 Ai≤Bi,设加入 (Ai,Bi) 后的新的 L(x) 为 L′(x),那么显然有:
L′(x)=⎩⎪⎨⎪⎧min(Bi,L(x))min(Ai,L(x))−∞Bi≤xAi≤x<Bix<Ai
由于 L(x) 单调不降,所以区间取 min 相当于区间推平,直接维护即可做到 O(nlogn)。
具体地,维护该函数的极长连续段 (l,r,y) 的集合 S(即 x∈[l,r] 时 L(x)=y),那么 ans=min(l,r,y)∈S{l−y}。颜色段均摊分析得出 S 最多变化 O(n) 次,同步维护 l−y 的集合即可。显然这是可以支持强制在线的。