[学习笔记]矩形面积并

常用的套路

各种合法矩形限制、合法区间对的限制,都可以转化为矩形面积并

如:省选模拟赛第十四轮[ZJOI2019]语言

还有直接矩形:(HDU 1542) Atlantis 矩形面积并——扫描线CF1086F Forest Fires

 

就是一个扫描线

线段树每个区间有一个c值,表示这个区间被完全覆盖次数。

类似李超线段树,我们把每个加入的线段分成logn份,恰好放进每个区间才行。

这个区间的c值,就加1,表示被完全覆盖一次。

计算这个区间的实际覆盖贡献cnt时,如果c>0 显然就是区间长度了。

如果不是,那就是两个儿子区间的贡献cnt和。

pushdown都不用。

 

说一下两种离散化方法:

1.转化成边界在“线”上

只需要线段树的叶子值是这个线和下一个线的距离即可。

2.转化为边界在“格”上

线段树的叶子值是一段格子。

如果相邻两行格子之间相差>1,就额外加入一行格子,代表这两行格子之间的所有格子。

 

posted @ 2019-06-13 17:11  *Miracle*  阅读(1107)  评论(0编辑  收藏  举报