A2876 | 翻转棋
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
FJ 知道,智商高的奶牛产奶量也大,所以他为奶牛们准备了一个翻动瓦片的益智游戏。
在一个 $M \times N$ 的方阵上($1 \leq M,N \leq 15$),每个格子都有一个可以翻转的瓦片。瓦片的一面是黑色,另一面是白色。对一个瓦片翻转,可以让它的颜色由黑到白,或是由白到黑。
然而奶牛们很笨拙,它们翻转一个格子的瓦片时,与其有公共边的所有瓦片也会翻转。
现在奶牛们想知道,至少需要多少次翻转,使所有的瓦片都变成白色朝上呢?
在一个 $M \times N$ 的方阵上($1 \leq M,N \leq 15$),每个格子都有一个可以翻转的瓦片。瓦片的一面是黑色,另一面是白色。对一个瓦片翻转,可以让它的颜色由黑到白,或是由白到黑。
然而奶牛们很笨拙,它们翻转一个格子的瓦片时,与其有公共边的所有瓦片也会翻转。
现在奶牛们想知道,至少需要多少次翻转,使所有的瓦片都变成白色朝上呢?
输入格式
第一行两个整数 $M,N$。
接下来 $M$ 行,每行 $N$ 个整数,表示初始状态,$0$ 表示白面朝上,$1$ 表示黑面朝上。
接下来 $M$ 行,每行 $N$ 个整数,表示初始状态,$0$ 表示白面朝上,$1$ 表示黑面朝上。
输出格式
如果不能将所有瓦片都翻转为白面朝上的话,输出
否则输出 $M$ 行,每行 $N$ 个整数,第 $i$ 行的第 $j$ 个数代表第 $i$ 行第 $j$ 列的瓦片被翻转了多少次。
你的输出应该确保翻转次数最少。如果存在多种方案,输出字典序最小的方案。
这里的字典序最小指将输出中的所有空白字符去掉后,形成的字符串字典序最小。
IMPOSSIBLE。否则输出 $M$ 行,每行 $N$ 个整数,第 $i$ 行的第 $j$ 个数代表第 $i$ 行第 $j$ 列的瓦片被翻转了多少次。
你的输出应该确保翻转次数最少。如果存在多种方案,输出字典序最小的方案。
这里的字典序最小指将输出中的所有空白字符去掉后,形成的字符串字典序最小。
输入输出样例
输入 #1
4 4 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1
输出 #1
0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0
下面的方案操作次数同样是最小的,但是字典序不是最小的。
```plain
0 1 1 0
0 0 0 0
0 0 0 0
0 1 1 0
```
```plain
0 1 1 0
0 0 0 0
0 0 0 0
0 1 1 0
```
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?