李超线段树
用途
李超线段树被用于维护许多线段(或者直线)的 \(\min\) 或者 \(\max\) 构成的凸壳。
做法
只适用于直线:
线段树只存储 \(mid\) 处是哪些直线(或者是经过了 \(l,r\) 的线段)产生贡献。对于一次新增直线的操作,判断对区间内左边和右边是否有贡献:
- 都有贡献:打上tag,标记永久化(避免太多直线信息下传带来的巨大时空消耗)
- 只有左或右侧有贡献:进入
- 没有贡献:返回
简单吧。
将直线转线段的方法:转化为横坐标在 \([-inf,inf]\) 之间的线段。
李超线段树被用于维护许多线段(或者直线)的 \(\min\) 或者 \(\max\) 构成的凸壳。
只适用于直线:
线段树只存储 \(mid\) 处是哪些直线(或者是经过了 \(l,r\) 的线段)产生贡献。对于一次新增直线的操作,判断对区间内左边和右边是否有贡献:
简单吧。
将直线转线段的方法:转化为横坐标在 \([-inf,inf]\) 之间的线段。