HDU 1255——覆盖的面积(矩形面积交:线段树+扫描线)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1255

题意: 

给出N(N<=1000)个矩形,求至少被两个矩形的所覆盖的面积和。

思路:

和上篇博客 链接 求多个矩形面积交的思路很相像,那个是维护当前有效宽求面积并,这里只需将cnt[i]>=2的看做有效宽(因为cnt记录的是扫描线的覆盖情况,当某个区间被下底边至少覆盖了两次,那么这条边以上的面积是由至少两个以上的矩形交和而成)所以唯一的区别在于更新len(区间有效长度)时看cnt的情况。

代码:

#include<bits/stdc++.h>
#define lson l,mid,o<<1
#define rson mid+1,r,o<<1|1
#define N 2005
using namespace std;

int cnt[N<<2];
double len[N<<2];

double X[N<<1];
struct edge
{
    double l,r,h;
    int f;
    edge() {}
    edge(double l,double r,double h,int f):l(l
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值