欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

hdu 1542 线段树之扫描线之面积并

程序员文章站 2022-03-30 13:40:24
题意:给你n个矩形,求它们的面积,重复的不重复计算 思路:用线段树的扫描线完成,将X坐标离散化后,从下到上扫描矩形,进行各种处理,看代码注释把 #include #in...

题意:给你n个矩形,求它们的面积,重复的不重复计算

思路:用线段树的扫描线完成,将X坐标离散化后,从下到上扫描矩形,进行各种处理,看代码注释把

#include 
#include 
#include 
#include 
#include 
using namespace std;
typedef long long ll;
const int maxn=1e3+10;
#define mm(a) memset(a,0,sizeof(a))
int num1[maxn*4];
double num[maxn*4],X[maxn*4];
struct edge{
    double l,r,h;
    int s;//s为1是下边,s为-1是上边
    edge(){};
    edge(double a,double b,double c,int d) : l(a),r(b),h(c),s(d){}
    bool operator<(const edge &n)const{
        return h>1;
    if(l<=t) update(l,r,add,le,t,node<<1);
    if(r>t) update(l,r,add,t+1,ri,node<<1|1);
    pushup(le,ri,node);
}
int main(){
    int n,t=1;
    while(scanf("%d",&n)!=-1){
        if(n==0) break;
        double a,b,c,d;
        int k=0;
        for(int i=0;i