彬腾向前冲 @ 2021-08-20 18:03:21
#include <bits/stdc++.h>
using namespace std;
const int N = 500;
int b[N][N] ;
int n ,m ;
void insert (int x1,int y1,int x2,int y2)
{
b[x1][y1] += 1;
b[x1][y2+1] -=1;
b[x2+1][y2] -=1;
b[x2+1][y2+1] +=1;
}
int main ()
{
cin >> n >> m;
int x1 , x2 , y1 , y2 ;
while(m--){
cin >> x1 >> y1 >> x2 >> y2;
insert(x1,y1,x2,y2) ;
}
//求前缀和
for (int i = 0 ; i < n ; i++){
for (int j = 0 ; j < n ; j++){
b[i][j] += b[i - 1][j] + b[i][j - 1] - b[i - 1][j - 1];
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
printf("%d ", b[i][j]);
}
printf("\n");
}
return 0;
}
by Anamnesis @ 2021-08-20 18:10:38
可能的原因之一是您在输入时使 m--
,但输出时使用了 for (int j = 0; j < m; j++)
,这个循环一次也不会进行。