扫描线这个东西比较玄虚,总的来讲大概是一种思想。
想象一条线从区间(或是其他什么)慢慢扫过,线每次碰到某个东西称为事件,然后根据事件来进行一些操作。
一般来讲,区间用扫描线要用到离散化和线段树来优化(要不然)。
具体的扫描线怎么用,主要是根据题目来做。
现在来看看扫描线的题目:
POJ1151 Atlantis:
给出n个矩形,求面积并。
1.对于矩形(x1,y1)-(x2,y2),添加两个事件:(x1,y1,y2),(x2,y1,y2)
2.从左到右扫描所有事件
3.变成:加入一个区间,删除一个区间,求区间并的长度
4.离散化+线段树