[CF1016D] Vasya And The Matrix

Description

已知一个 (n×m) 的矩阵,每行每列元素的异或和,请构造一个满足要求的矩阵。若不存在,输出"NO",否则输出"YES"和矩阵。
$ n,m leq 100 $

Solution

将前 ((n-1)(m-1)) 设为 (0),只通过最后一个 (L) 型来构造

#include <bits/stdc++.h>
using namespace std;

#define int long long
const int N = 105;

int n,m,a[N],b[N],s[N][N];

signed main() {
    cin>>n>>m;
    for(int i=1;i<=n;i++) cin>>a[i];
    for(int i=1;i<=m;i++) cin>>b[i];
    for(int i=1;i<n;i++) s[i][m]=a[i];
    for(int i=1;i<=m;i++) s[n][i]=b[i];
    for(int i=1;i<n;i++) s[n][m]^=a[i];
    int sum=0;
    for(int i=1;i<=m;i++) sum^=s[n][i];
    if(sum-a[n]) {
        cout<<"NO";
    }
    else {
        cout<<"YES"<<endl;
        for(int i=1;i<=n;i++) {
            for(int j=1;j<=m;j++) cout<<s[i][j]<<" ";
            cout<<endl;
        }
    }
}
原文地址:https://www.cnblogs.com/mollnn/p/12842621.html