推理过程如下
a | b | c |
d | e | f |
g | h | i |
⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇
a | b^e^h | c^f^i |
d^e^f | 0 | 0 |
g^h^i | 0 | 0 |
其中 第一行 a^b^e^h^c^f^i 为题中给出的a[0] 第一列a^d^e^f^g^h^i为题中给出的b[0]
有 a^b^e^h^c^f^i=a[0] =>a=a[0]^b^e^h^c^f^i 同理a=b[0]^d^e^f^g^h^i
所以比较一下 各行的异或的连续亦或 和各列的连续亦或想不想等就可以判断矩阵是否存在
并且 求出a
#include
using namespace std;
int a[1005],b[1005];
int ans[1005][1005];
int main(){
int n,m;
cin>>n>>m;
int x=0,y=0;
for(int i=0;i>a[i];
x=x^a[i];
}
for(int i=0;i>b[i];
y=y^b[i];
}
if(x==y){printf("YES\n");
ans[0][0]=x^a[0]^b[0];
for(int i=1;i