二维差分数组
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
vector<vector<int>> v(n + 2, vector<int>(n + 2));
while (m--) {
int x1, x2, y1, y2;
cin >> x1 >> y1 >> x2 >> y2;
v[x1][y1]++, v[x2 + 1][y2 + 1]++;
v[x1][y2 + 1]--, v[x2 + 1][y1]--;
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
v[i][j] = v[i][j] + v[i - 1][j] + v[i][j - 1] - v[i - 1][j - 1];
cout << v[i][j] % 2;
}
cout << endl;
}
return 0;
}