#P16134. [ICPC 2018 NAIPC] Recovery
[ICPC 2018 NAIPC] Recovery
题目描述
考虑一个 的 0-1 矩阵。例如,下面这个 矩阵:
$$\begin{aligned} 1\ 1\ 1\ 1 \\ 0\ 1\ 1\ 1 \\ 0\ 1\ 1\ 1 \\ 0\ 1\ 1\ 0 \end{aligned}$$我们可以计算每一行和每一列的偶校验。在这个例子中,行的校验结果为 ,列的校验结果为 (如果某行或某列中 1 的个数为奇数,则校验结果为 1;如果为偶数,则校验结果为 0)。注意,第一行是第 1 行,最后一行是第 行,最左边一列是第 1 列,最右边一列是第 列。
假设我们丢失了原始矩阵,只保留了行和列的校验结果。我们能否恢复原始矩阵?遗憾的是,无法唯一地恢复原始矩阵,但在某些约束条件下,我们可以唯一地恢复一个符合条件的矩阵。首先,恢复出的矩阵必须包含尽可能多的 1。其次,在所有包含最多 1 的恢复矩阵中,选择将第 1 行、第 2 行、第 3 行……按顺序拼接后得到的二进制数最小的那个。
输入格式
每个输入包含单个测试用例。请注意,你的程序可能会在不同输入上多次运行。每个测试用例恰好包含两行。第一行包含一个字符串 (),仅由字符 0 和 1 组成,按顺序表示行的校验结果。第二行包含一个字符串 (),仅由字符 0 和 1 组成,按顺序表示列的校验结果。
输出格式
如果能够在给定约束下恢复原始矩阵,则输出 行,每行恰好 个字符,仅由 0 和 1 组成,表示恢复出的矩阵。如果无法恢复,则输出 。
0110
1001
1111
0111
1110
1111
0
1
-1
11
0110
1011
1101
提示
翻译由 DeepSeek V3.2 完成