洛谷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;
}

浙公网安备 33010602011771号