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