动态添加线段,求某个 \(x\) 对应的 \(y\) 最大是多少,且对应哪条直线。
因为 \(x\) 比较小,考虑在 \(x\) 轴上建立线段树。把每个线段写成 \(y=kx+b\) 的解析式形式并求出它的定义域 \([l,r]\),每条线段就可以看作是一个应用在 \([l,r]\) 上的区间修改。每次查询就是单点查询。
因为是单点查询,我们可以考虑标记永久化的做法:尝试让每一条线段分成若干个结点后,永久停留在那个结点上。
但是这可能有一个问题:如果我们准备一个结点上打标记,但是这里已经有一个标记了,怎么办?
肯定不能用 vector 存所有标记,复杂度会爆。
标签:结点,单点,标记,线段,李超,查询 From: https://www.cnblogs.com/FLY-lai/p/18086168