码迷,mamicode.com
首页 > 其他好文 > 详细

扫描线略解

时间:2019-11-03 16:28:06      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:线段树   app   ima   roc   插入图片   复杂   strong   convert   lin   

问题引入

\(n\) 个矩形的面积并。\(1\leq n\leq 10^5\)

离散化坐标

首先,通过离散化,可以让矩形的坐标从 \(10^9\) 级别降至 \(10^5\) 级别。

尽管如此,开一个 \(N^2\) 的二维数组来存储坐标系里的每个点,仍然还会导致空间超限。

扫描线

本章节中,部分图片来自这里

技术图片
看到图中的虚线了吗?想想有一条平行于 y 轴的直线从左往右扫过图形,那么这 \(n\) 个矩形的面积并就转化成:每个时刻这条直线与图形相交的线段长之和。
技术图片

我们发现,一个时刻,相交的线段长可以用线段树维护并算出来,于是我们只要先把矩形排序,让这条线从左往右扫一次图形就统计出面积交了。时间复杂度 \(O(n\log n)\)

例题

\(n\) 个矩形的面积并。\(1\leq n\leq 10^5\)

参考代码
(略)

扫描线略解

标签:线段树   app   ima   roc   插入图片   复杂   strong   convert   lin   

原文地址:https://www.cnblogs.com/yhmaster/p/11787623.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!