把坐标离散化,这样横坐标最多有200个,竖坐标最多有200个。
然后标记一下那些块含盖。
然后计算面积。
#include#include #include #include #include using namespace std; struct are { double x1,y1,x2,y2; int ax,ay,bx,by; } node[201]; double xx[501]; double yy[501]; int maps[501][501]; int numx,numy; int n; int cas; void es() { int i; sort(xx+1,xx+n*2+1); sort(yy+1,yy+n*2+1); numx=numy=2; for(i=2; i<=2*n; i++) { if(xx[i]!=xx[i-1]) { xx[numx]=xx[i]; numx++; } if(yy[i]!=yy[i-1]) { yy[numy]=yy[i]; numy++; } } } void chu() { int i,j; for(i=1; i<=n; i++) { for(j=1; j dos() { int i,j,k; for(i=1;i<=n;i++) { for(j=node[i].ax;j