那块有问题吗 怎么输出不了值

P3397 地毯

彬腾向前冲 @ 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++),这个循环一次也不会进行。


|