洛谷P3397

P3397 地毯

二维前缀和与差分问题一般出错就在于容斥原理、差分数组与总和数组间关系这两点,容易写着写着忘了怎样正确计算

点击查看代码
#include<bits/stdc++.h>
using namespace std;

const int N = 1010;
// vector<vector<int>> a(N, vector<int>(N));
vector<vector<int>> d(N, vector<int>(N));

int main() {
    int n, m; cin >> n >> m;
    for(int i = 1; i <= m; i++) {
        int x1, x2, y1, y2;
        cin >> x1 >> y1 >> x2 >> y2;
        d[x1][y1] += 1;
        d[x2 + 1][y2 + 1] += 1;
        d[x1][y2 + 1] -= 1;
        d[x2 + 1][y1] -= 1;
    }
    for(int i = 1; i <= n; i++) {
        for(int j = 1; j <= n; j++) {
            d[i][j] = d[i][j] + d[i - 1][j] + d[i][j - 1] - d[i - 1][j - 1] ;
            cout << d[i][j] << ' ';
        }
        cout << '\n';
    }
    return 0;
}
posted @ 2025-05-15 11:27  Chuan81  阅读(13)  评论(0)    收藏  举报