QOJ.ac

QOJ

Limite de temps : 1.0 s Limite de mémoire : 1024 MB Points totaux : 100 Hackable ✓

#17262. 格子翻转游戏

Statistiques

给你一个大小为 $n \times m$ 的 01 矩阵 $A$。简单来说,它是一个 $n$ 行 $m$ 列的表格,每个单元格的值为 $0$ 或 $1$。

在一次操作中,你可以选择该矩阵中的一个单元格 $(i, j)$,并翻转该单元格以及所有与其共享一条边的单元格中的值。形式化地,对于每个满足 $1 \le s \le n$ 且 $1 \le t \le m$ 且 $|s - i| + |t - j| \le 1$ 的单元格 $(s, t)$,应用变换 $A_{s,t} \leftarrow 1 - A_{s,t}$。

请找到一种操作方案,使得矩阵中的所有元素都变为 $0$,或者说明这是不可能的。

输入格式

第一行包含两个整数 $n$ 和 $m$($1 \le n, m \le 500$),表示矩阵的大小。

接下来的 $n$ 行中,第 $i$ 行包含一个长度为 $m$ 的二进制字符串,对应矩阵的第 $i$ 行。

输出格式

如果无解,请在单行中输出单词 NO

否则,在第一行输出单词 YES。在接下来的 $n$ 行中,每行输出一个长度为 $m$ 的二进制字符串。这些字符串构成一个大小为 $n \times m$ 的矩阵。当且仅当你打算对对应的单元格进行操作时,该位置的元素才为 $1$。

当然,所有选择的操作组合在一起,必须能够将初始矩阵转换为全零矩阵。

如果存在多种解决方案,输出其中任意一种即可。

你可以输出任意大小写的单词(例如 YESyesNo 等)。

样例

输入样例 1

3 4
1000
0001
0100

输出样例 1

YES
0100
0110
1100

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.