杀,我会去杀、用我这条命去换我们仇人的命!
杀!用我的命去证明这世道是错的—天,亦是错的!
湖边寻到满穗后,良有太多疑问。
良的问题和满穗的实情可以抽象成两个 $$$n\times m$$$ 的 $$$01$$$ 矩阵 $$$A$$$ 和 $$$B$$$。
矩阵每一个位置 $$$(i, j)$$$ 有一个权值,如果该点为 $$$1$$$,权值为 $$$0$$$,否则为与它相邻的 $$$1$$$ 的数量(两个格子相邻当且仅当它们共用一个点或一条边)。
良的每次提问可以表示为反转 $$$A$$$ 中的某一位。
为了清楚事实,良希望尽可能的少提问,使得 $$$A$$$ 和 $$$B$$$ 的权值和相等。
形式化的:给定两个 $$$n\times m$$$ 的 $$$01$$$ 矩阵 $$$A$$$ 和 $$$B$$$。
矩阵 $$$(i, j)$$$ 位置的值为 $$$1$$$ ,权值为 $$$0$$$,否则为与它相邻的 $$$1$$$ 的数量(两个格子相邻当且仅当它们共用一个点或一条边)。
你可以执行以下操作:
选择 $$$A$$$ 的一个位置 $$$(i, j)$$$,反转这一位的 $$$01$$$ 值。
构造一种操作序列,在操作后两矩阵的权值和相等,且操作序列长度不能超过 $$$\lfloor \frac{nm}2 \rfloor$$$。
第一行输入两个正整数 $$$n$$$,$$$m$$$($$$1\le n\times m \le 10^6$$$),表示矩阵大小。
接下来 $$$n$$$ 行,第 $$$i$$$ 行输入一个长度为 $$$m$$$ 的 $$$01$$$ 字符串,表示 $$$A_i$$$。
接下来 $$$n$$$ 行,第 $$$j$$$ 行输入一个长度为 $$$m$$$ 的 $$$01$$$ 字符串,表示 $$$B_j$$$。
第一行输出一个整数 $$$k$$$($$$0\le k \le \lfloor \frac{nm}2 \rfloor$$$),表示操作序列的长度。
接下来 $$$k$$$ 行,每行输出两个正整数 $$$i$$$ 和 $$$j$$$,表示对 $$$A$$$ 的操作位置。
2 3011000101111
1 2 3
| Name |
|---|


