扫描线 求n个矩形覆盖后的总面积之和 hdu1542 Atlantis

题目链接     hdu1542 Atlantis (入门题)

题目大意:给你n个矩形,求他们的总面积之和(覆盖区域只算一次)。

解题思路: 详解请移步到here

#include 
 #include 
 #include 
 #include 
 using namespace std;
 
 #define lz 2*u,l,mid
 #define rz 2*u+1,mid+1,r
 const int maxn=4222;
 double sum[maxn];
 int flag[maxn];
 double X[maxn];
 
 struct Node
 {
     double lx, rx, y;
     int s;
     Node(){};
     Node(double lx_, double rx_, double y_, int s_)
     {
         lx=lx_, rx=rx_, y=y_, s=s_;
     }
     bool operator <(const Node &S) const
     {
         return y>1;
         if(X[mid]==tmp) return mid;
         else if(X[mid]>1;
     if(tr<=mid) Update(lz,tl,tr,c);
     else if(tl>mid) Update(rz,tl,tr,c);
     else
     {
         Update(lz,tl,mid,c);
         Update(rz,mid+1,tr,c);
     }
     push_up(u,l,r);
 }
 
 int main()
 {
     int n,tcase=0;
     while(cin >> n,n)
     {
         int num=0;
         memset(flag,0,sizeof(flag));
         memset(sum,0,sizeof(sum));
         for(int i=0; i


你可能感兴趣的:(线段树)