CF1475F.Unusual Matrix
普及+/提高
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given two binary square matrices a and b of size n×n. A matrix is called binary if each of its elements is equal to 0 or 1. You can do the following operations on the matrix a arbitrary number of times (0 or more):
- vertical xor. You choose the number j (1≤j≤n) and for all i (1≤i≤n) do the following: ai,j:=ai,j⊕1 (⊕ — is the operation xor (exclusive or)).
- horizontal xor. You choose the number i (1≤i≤n) and for all j (1≤j≤n) do the following: ai,j:=ai,j⊕1.
Note that the elements of the a matrix change after each operation.
For example, if n=3 and the matrix a is: $$ \begin{pmatrix} 1 & 1 & 0 \\ 0 & 0 & 1 \\ 1 & 1 & 0 \end{pmatrix} $$ Then the following sequence of operations shows an example of transformations:
- vertical xor, j=1. $$ a= \begin{pmatrix} 0 & 1 & 0 \\ 1 & 0 & 1 \\ 0 & 1 & 0 \end{pmatrix} $$
- horizontal xor, i=2. $$ a= \begin{pmatrix} 0 & 1 & 0 \\ 0 & 1 & 0 \\ 0 & 1 & 0 \end{pmatrix} $$
- vertical xor, j=2. $$ a= \begin{pmatrix} 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{pmatrix} $$
Check if there is a sequence of operations such that the matrix a becomes equal to the matrix b.
你被给定两个大小为 n×n 的二进制方阵 a 和 b。若矩阵的每个元素均为 0 或 1,则称该矩阵为二进制矩阵。你可以对矩阵 a 执行以下两种操作任意多次(包括零次):
- 竖直异或(vertical xor):选择一个列号 j(1≤j≤n),并对所有行号 i(1≤i≤n)执行:ai,j:=ai,j⊕1(其中 ⊕ 表示异或(exclusive or) 运算)。
- 水平异或(horizontal xor):选择一个行号 i(1≤i≤n),并对所有列号 j(1≤j≤n)执行:ai,j:=ai,j⊕1。
注意:每次操作后,矩阵 a 的元素都会发生变化。
例如,当 n=3 且矩阵 a 为:
101101010
以下是一组操作序列及其变换示例:
- 竖直异或,j=1:
a=010101010
- 水平异或,i=2:
a=000111000
- 竖直异或,j=2:
a=000000000
请判断是否存在一系列操作,使得矩阵 a 能变为矩阵 b。
输入格式
The first line contains one integer t (1≤t≤1000) — the number of test cases. Then t test cases follow.
The first line of each test case contains one integer n (1≤n≤1000) — the size of the matrices.
The following n lines contain strings of length n, consisting of the characters '0' and '1' — the description of the matrix a.
An empty line follows.
The following n lines contain strings of length n, consisting of the characters '0' and '1' — the description of the matrix b.
It is guaranteed that the sum of n over all test cases does not exceed 1000.
第一行包含一个整数 t(1≤t≤1000),表示测试用例的数量。随后是 t 个测试用例。
每个测试用例的第一行包含一个整数 n(1≤n≤1000),表示矩阵的大小。
接下来的 n 行,每行是一个长度为 n 的字符串,仅由字符 '0' 和 '1' 组成,描述矩阵 a。
随后是一空行。
再接下来的 n 行,每行是一个长度为 n 的字符串,仅由字符 '0' 和 '1' 组成,描述矩阵 b。
保证所有测试用例的 n 之和不超过 1000。
输出格式
For each test case, output on a separate line:
- "YES", there is such a sequence of operations that the matrix a becomes equal to the matrix b;
- "NO" otherwise.
You can output "YES" and "NO" in any case (for example, the strings yEs, yes, Yes and YES will be recognized as positive).
对于每个测试用例,在单独一行中输出:
- 若存在一系列操作使得矩阵 a 变为矩阵 b,则输出 "YES";
- 否则输出 "NO"。
你可以以任意大小写形式输出 "YES" 和 "NO"(例如,字符串 yEs、yes、Yes 和 YES 均被视为肯定回答)。
输入输出样例
输入#1
3 3 110 001 110 000 000 000 3 101 010 101 010 101 010 2 01 11 10 10
输出#1
YES YES NO
说明/提示
The first test case is explained in the statements.
In the second test case, the following sequence of operations is suitable:
- horizontal xor, i=1;
- horizontal xor, i=2;
- horizontal xor, i=3;
It can be proved that there is no sequence of operations in the third test case so that the matrix a becomes equal to the matrix b.
第一个测试用例已在题目描述中说明。
在第二个测试用例中,以下操作序列是可行的:
- 水平异或,i=1;
- 水平异或,i=2;
- 水平异或,i=3;
可以证明,在第三个测试用例中,不存在任何操作序列能使矩阵 a 变为矩阵 b。
输入解题思路,AI测评打分。不知道怎么写?