求调
查看原帖
求调
482253
CZKWEN543楼主2023/5/23 20:08
#include<bits/stdc++.h>
using namespace std;

int n;
int cha[4005][4005];
int N[4005];
int ax[1005], ay[1005], bx[1005], by[1005];
int AX[1005], AY[1005], BX[1005], BY[1005];
map<int, int> ma;
map<int, int> m;
int h;
int sum;

int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		int x, y, z, q;
		cin>>BX[i]>>BY[i]>>AX[i]>>AY[i];
		N[i]=BX[i];
		N[i+n]=BY[i];
		N[i+2*n]=AX[i];
		N[i+3*n]=AY[i];
	}
	sort(N+1, N+1+4*n);
	h++;
	ma[N[1]]=h;
	m[h]=N[1];
	for(int i=2;i<=4*n;i++){
		if(N[i]==N[i-1]) continue;
		h++;
		ma[N[i]]=h;
		m[h]=N[i];
	}
	for(int i=1;i<=n;i++){
		ax[i]=ma[AX[i]];
		ay[i]=ma[AY[i]];
		bx[i]=ma[BX[i]];
		by[i]=ma[BY[i]];
	}
	for(int i=1;i<=n;i++){
		cha[ax[i]][ay[i]]++;
		cha[bx[i]][by[i]]++;
		cha[bx[i]][ay[i]]--;
		cha[ax[i]][by[i]]--;
	}
	for(int x=0;x<=h;x++){
		for(int y=0;y<=h;y++){
			cha[x][y]+=cha[x][y-1]+cha[x-1][y]-cha[x-1][y-1];
			if(cha[x][y]) sum+=(m[y+1]-m[y])*(m[x+1]-m[x]);
		}
	}
	cout<<sum;
}
2023/5/23 20:08
加载中...