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$。