```cpp
#include<bits/stdc++.h>
using namespace std;
int boy[3][5001],girl[3][5001],b,g,m,n,sum;
int main() {
cin>>n>>m>>b>>g;
int fz[m][n]={0};
for(int i=1; i<=b; i++) {
cin>>boy[i][1]>>boy[i][2];
}
for(int i=1; i<=g; i++) {
cin>>girl[i][1]>>girl[i][2];
}//全存完了所有数据
for(int i=1; i<=b; i++) {
for(int k=boy[1][i]; k<=boy[2][i]; k++) {
for(int j=1; j<=m; j++) {
if(fz[k][j]!=1)
{
fz[k][j]=1;
}
}
}
}//男孩扫的地方
for(int i=1; i<=g; i++) {
for(int k=girl[1][i]; k<=girl[2][i]; k++) {
for(int j=1;j<=n;j++){
if(fz[j][k]!=1)
{
fz[j][k]=1;
}
}
}
}//女孩扫的地方
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(fz[i][j]!=0){
sum++;
}
}
}
cout<<sum;
return 0;
}
```
by 憨批热狗 @ 2020-10-18 17:26:27
先不说超时的问题,样例都过不了(X_X)
by 憨批热狗 @ 2020-10-18 17:27:41
```cpp
int fz[m][n]={0};
```
一看就是萌新,```int fz[5005][5005]={0};```
这道题不能记录每一个格子,要记录每一行或列扫没扫
最后有两种方法:
1. $x$行没扫,$y$列没扫,$n\times m-x\times y$
1. $x$行扫了,$y$列扫了,$x\times m+y\times n-x\times y$
by NumberTrart @ 2023-01-18 13:22:30