这道题暴力其实也可以过,但是最好不要暴力了,能过都是运气而已,正经做法用差分。二维差分来做,不知道的差分的去康康其他dalao的博客~
#include <iostream>
#include <cstring>
using namespace std;
#define Max 1005
int a[Max][Max];
int c[Max][Max];
int main()
{
memset(a,0, sizeof(a));
memset(c,0, sizeof(c));
int n,m,x1,x2,y1,y2;
cin>>n>>m;
for(int i=1;i<=m;i++)
{
cin>>x1>>y1>>x2>>y2;
c[x1][y1]+=1;
c[x2+1][y2+1]+=1;
c[x2+1][y1]-=1;
c[x1][y2+1]-=1;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
c[i][j]=c[i][j]+c[i-1][j]+c[i][j-1]-c[i-1][j-1];
a[i][j]+=c[i][j];
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}