李超树学习
我原本都不想学的。
【】。
今早把前天那个矩形内到点对的距离最小和写一下。
非常寄。
写了一早上的维护凸壳。
非常难受。
我只好说:狗都不维护凸壳。
俺直接来学李超树好了。
李超树
以单点max举例。
其每个节点维护的是其范围内的在其上段的暴露出来长度最大的直线。
修改时分类讨论:
- 该区间无覆盖,直接修改其答案为直线。
- \((x = l)\) 和 \((x = r)\)时,其\(f_{now} < f_{T_u}\)直接忽略
- \((x = l)\) 和 \((x = r)\)时,其\(f_{now} > f_{T_u}\)直接替换
- 与在\((x = l)\)时,\(f_{now} > f_{T_u}\)
-
- 其和\(T_u\)的交点在中点左边,则不更新该区间,递归更新左区间
-
- 其和\(T_u\)的交点在中点右边,更新该区间为\(now\),用\(T_u\)更新右区间。
- 与在\((x = r)\)时,\(f_{now} > f_{T_u}\)
-
- 其和\(T_u\)的交点在中点右边,则不更新该区间,递归更新右区间
-
- 其和\(T_u\)的交点在中点左边,更新该区间为\(now\),用\(T_u\)更新左区间。
查询\(x = x_I\)时
直接在线段树结构上暴力到根。
在所有点的最优线段中取\(max\)。