扫描线
参考于:http://www.cnblogs.com/kane0526/archive/2013/02/26/2934214.html
https://www.cnblogs.com/headchen/p/9172491.html
- 先离散化。
- 【扫描线】是一根假设的虚线,从下往上扫描(或 从左往右)。
- 遇到一个矩形的下边(或左边),则
Update
相应区间的 w+1。 - 遇到一个矩形的上边(或右边),则
Update
相应区间的 w-1。 - 用【线段树】维护【区间】的 w ,以及 w > 0 区间的线段的总长度Len。
求面积比较简单:
S=Δx∗∑cnt>0(raw(i+1)−raw(i))
即可。也就是每次Update后,增加面积即可。
求周长
道理基本上差不多,稍复杂。
- 两次扫描,横向和竖向。
每次Update
后,
【周长的增加额】 = abs(【Update前SumLen】-【SumLen】)
ΔLi=∑cnt>0(raw(i+1)−raw(i))
自己选择的路,跪着也要走完。朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。