传送门 0棋盘 - 蓝桥云课
const int N = 2e3 + 10;
int n,m;
int a[N][N];
void insert(int x11,int y11,int x22,int y22)
{
a[x11][y11] ++;
a[x11][y22 + 1] --;
a[x22 + 1][y11] --;
a[x22 + 1][y22 + 1] ++;
}
void solve()
{
cin >> n >> m;
for (int i = 1;i <= m;i ++)
{
int x11,y11,x22,y22;
cin >> x11 >> y11 >> x22 >> y22;
insert(x11,y11,x22,y22);
}
for (int i = 1;i <= n;i ++)
for (int j = 1;j <= m;j ++)
a[i][j] += a[i - 1][j] + a[i][j - 1] - a[i - 1][j - 1];
for (int i = 1;i <= n;i ++)
{
for (int j = 1;j <= m;j ++)
{
if (a[i][j] & 1) cout << 1;//加了奇数次,为黑子
else cout << 0;//偶数次,为白子
}
cout << endl;
}
}