Tablica binarna

· · 题解

题目传送门

题意+思路

题目就是让我们求在很多次修改过后,需要执行至少多少次修改操作,让矩阵内所有元素的值全部变为 0。然后我们又发现奇数个翻转的位置每次操作只有 4 个,所以只用打暴力即可。

代码

如下:

#include<bits/stdc++.h>
using namespace std;
int n,m,q,x,y,z,k,ret,a[1005][1005],s[1005][1005];
void w(int x,int y){
    if(x<1||y<1||x>n||y>m)return ;//判断是否出界
    ret-=s[x][y];
    s[x][y]^=1;
    ret+=s[x][y];
}
int main(){
    cin>>n>>m>>q;
    for(int i=1;i<=q;i++)
    {
    cin>>x>>y>>z>>k;
    w(x-1,y-1);
    w(z,k);
    w(x-1,k);               
    w(z,y-1); 
    cout<<ret<<endl;
    } 
    return 0;
}