题意
X轴上有n个建筑,求这些建筑和地面的包络线。
题解
首先我们需要将LR坐标离散化,并且将建筑按L坐标排序。
维护一个now表示当前最高点,初始值赋0。再维护一个最大堆。
从小到大遍历离散化坐标,设当前坐标为x,将L==x的建筑高度push进最大堆,如果push的最大建筑高度p>now,说明当前点变高了,输出:
x now
x p
输出后更新now=p,然后将R<=x的建筑高度pop出最大堆,紧接着更新now=堆顶 or 0(空堆),如果pop的最大建筑高度q>now,说明当前点变低了,输出:
x q
x now