[URAL 1147][USACO rect1]Shaping Regions(矩形切割)

【题目大意】:

A*B的矩阵,按上下顺序给出N个小矩形,每个小矩形都有一种颜色,求最后所有颜色的覆盖面积。

【题目分析】:

很经典的线段树的题目,我以前用的就是线段树的方法,但是还有更好的做法,那就是传说中的矩形切割。

其实矩形切割并不是很难理解,实际上他还有一个名字叫做冰块上浮法,怎么理解呢。

这道题无非好像是在墙上糊纸,在最上面的肯定不会受到其他的遮挡,所以说应该全能看到。然后下面的东西我们就可以进行一下讨论。我们把插入矩形的顺序倒过来。然后重新进行插入,这样已经插入过的地方就可以被无视了(因为肯定显现出来的是上面的)。我们只需要将它上面没被遮住的地方一层层的让上边的纸档上,最终得到的就是露在外面的部分。

P.S.就好像一个冰块最开始在最底层,然后开始上浮。碰到上面的冰块,被碰到的地方就化掉,然后剩下的部分继续上浮,直到浮到水面为止。所以这种方法也叫冰块上浮法。

详细的讲解和图可以看薛茅神牛的论文。

【代码】:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值