Cho hai bảng nhị phân \(a\) và \(b\) có cùng kích thước \(n\)x\(n\). Bảng nhị phân là bảng chứa các phần tử là \(0\) hoặc \(1\). Có hai loại thao tác có thể thực hiện được trên bảng:
- thao tác \(1\): Chọn một hàng bất kì và thực hiện đảo ngược tất cả các số ở trên hàng. Ví dụ: hàng \(x\) lần lượt là \(0, 0, 0, 1, 0, 1\), sau khi thực hiện thao tác thứ nhất, hàng \(x\) trở thành \(1, 1, 1, 0, 1, 0\).
- thao tác \(2\): Chọn một cột bất kì và thực hiện đảo ngược tất cả các số ở trên cột. Ví dụ: cột \(x\) lần lượt là \(0, 0, 0, 1, 0, 1\), sau khi thực hiện thao tác thứ nhất, cột \(x\) trở thành \(1, 1, 1, 0, 1, 0\).
Thao tác loại \(1\) và thao tác loại \(2\) có thể thực hiện với số lần bất kì (có thể \(0\)). Hãy kiểm tra xem có cách nào sau khi thực hiện các thao tác, bảng \(a\) trở thành bảng \(b\).
Input
Dòng đầu tiên gồm số nguyên dương \(Q\) \((Q <= 5)\) là số truy vấn.
Với mỗi truy vấn, dòng đầu tiên là số nguyên dương \(n\) - kích thước của \(2\) bảng \(a\), \(b\).
\(n\) dòng tiếp theo, mỗi dòng mô tả một hàng của bảng \(a\).
\(n\) dòng tiếp theo, mỗi dòng mô tả một hàng của bảng \(b\).
Output
\(Q\) dòng, mỗi dòng in ra "YES" nếu có thể đưa được bảng \(a\) trở thành bảng \(b\), in "NO" ngược lại.
Example
Test 1
Input
1
3
1 1 0
0 0 1
1 1 0
0 0 0
0 0 0
0 0 0
Output
YES
Scoring
\(30\%\) số test có \(n <= 10\), \(Q = 1\).
\(15\%\) số test có \(n <= 100\), nếu có thể đưa bảng \(a\) về bảng \(b\) thì sẽ tồn tại cách dùng không quá hai thao tác.
\(15\%\) số test có \(n <= 1000\), nếu có thể đưa bảng \(a\) về bảng \(b\) thì sẽ tồn tại cách dùng không quá hai thao tác.
\(40\%\) số test còn lại có \(n <= 1000\).
Bình luận
Đăng nhập để bình luận
Chưa có bình luận nào.