AT_arc199_a [ARC199A] Flip Row or Col 2

题目描述

给定一个 $N\times N$ 的矩阵,第 $i$ 行第 $j$ 列的数字为 $A_{i,j}$,且 $A_{i,j}$ 为 $0$ 或 $1$,再给出两个长度为 $N$ 的数列 $\{R_N\},\{C_N\}$,满足 $0\le R_i,C_i< \frac{N}{4}$。 请你构造两个仅由字符 `0` 和 `1` 组成的字符串 $X,Y$。含义如下: - 对于所有 $1\le i\le N$,且 $X$ 的第 $i$ 个字符为 $1$,翻转第 $i$ 行,即对于所有 $1\le j\le N$,$A_{i,j}\gets 1-A_{i,j}$。 - 对于所有 $1\le i\le N$,且 $Y$ 的第 $i$ 个字符为 $1$,翻转第 $i$ 列,即对于所有 $1\le j\le N$,$A_{j,i}\gets 1-A_{j,i}$。 请你构造 $X,Y$,使得完成上述操作后: - 对于所有 $1\le i\le N$,$\sum_{j=1}^N A_{i,j}=R_i$,即第 $i$ 行的所有数字之和为 $R_i$。 - 对于所有 $1\le i\le N$,$\sum_{j=1}^N A_{j,i}=C_i$,即第 $i$ 列的所有数字之和为 $C_i$。 若可以构造出来,则先输出单独一行 `Yes`,再输出两行,分别为 $X,Y$。 否则输出一行 `No`。 **单个测试点有 $T$ 组数据,请逐个解答。**

输入格式

按照如下格式输入: >$T$ > >$\textrm{case}_1$ > >$\textrm{case}_2$ > >$\vdots$ > >$\textrm{case}_T$ 其中,$case_i$ 为第 $i$ 组测试数据,输入格式如下: >$N$ > >$A_{1,1}A_{1,2}\dots A_{1,N}$ > >$A_{2,1}A_{2,2}\dots A_{2,N}$ > >$\vdots$ > >$A_{N,1}A_{N,2}\dots A_{N,N}$ > >$R_1$ $R_2$ $\ldots$ $R_N$ > >$C_1$ $C_2$ $\ldots$ $C_N$

输出格式

对于每组测试数据,如果有解,按以下格式输出**任意**一组: >`Yes` > >$X$ > >$Y$ 否则输出: >`No`

说明/提示

### 数据范围与约定 - $ 1\leq T\leq 10^5$。 - $ 1\leq N\leq 1000$。 - $A_{i,j} \in\lbrace 0,1\rbrace$。 - $0\leq R_i,C_j\lt \frac{N}{4}$。 - $T,N,R_i,C_j$ 为整数。 - 每个测试点的所有测试数据的 $N^2$ 之和不超过 $10^6$。