Codeforces Round #697 (Div. 3) F

F. Unusual Matrix

这种题两种操作就相当于那种差分后再总体减的那种
我们考虑先只进行一种操作 比如说是行
我们对于每一行应该只有可能经过0/1次变换 都变成一摸一样的 然后再考虑列操作才可以得到全0矩阵
我们以第一行为模板 直接看通过一次变换后可以不可以变成一样的就可以了

int n,a[1010][1010];
vector<int>a1;
bool check(int x){
    vector<int>ax;
    for(int i=1;i<=n;i++)ax.push_back(a[x][i]);
    if(ax==a1)return 1;
    for(auto &i:ax)i^=1;
    if(ax==a1)return 1;
    else return 0;
}
void solve(){
    cin>>n;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            char c;cin>>c;
            if(c=='1')a[i][j]=1;
            else a[i][j]=0;
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            char c;cin>>c;
            if(c=='1')a[i][j]^=1;
        }
    }
    a1.clear();
    for(int i=1;i<=n;i++)a1.push_back(a[1][i]);
    for(int i=2;i<=n;i++){
        if(!check(i)){
            NO return;
        }
    }
    YES
}
posted @ 2022-11-11 14:54  ycllz  阅读(22)  评论(0)    收藏  举报