/ Vijos / 题库 /

十全十美

十全十美

背景

Voldemort最近在电子辞典上玩一个小游戏,名字叫十全十美,就是把一个矩阵排列的白色方格按照一定规则(一次可以将十字形的五个方格反色)全部变成黑色方格。其实很多人都玩过啦!不过Voldemort不才,连第一关5*5都过不了。作为一个新世纪的OIer,你能帮帮他吗?

描述

游戏规则:
在一个具有n*m个方块的矩阵中,所有的方块初始状态都为白色。我们的目标是将所有方块变为黑色。变换规则如下:
·每次可以将排列成十字形的5个方格反色:
■■□□□□□□□
■□□■□□□□□ <=这些变换都是合法的
□□■■■□□■□
□□□■□□■■■
·若一个方格已经被变换过一次,再次变换会使它还原:
□□□□□   □□□□□
□□□■□ => □□■■□
□□■■■   □■□□■
□□□■□   □□■■□

给出矩阵的长n和宽m,要求打印前十个方案和总方案数。

格式

输入格式

只有一行:n m
(1<=n<=100,1<=m<=15)

输出格式

方案的表示方法如下:
·每个方案的第一行打印目前是第几个方案;接下来的n行(每行m列),打印方案矩阵,1表示该位置需要反色一次。

·方案与方案之间有一空行;
·输出顺序:“方案值”递增排列。说简单点就是把矩阵第一行反过来看成一个数字,这个数字就是“方案值”。

例如:(n=5)
...
2
1 0 1 1 0
0 1 1 1 0
1 1 1 0 0
1 1 0 1 1
0 0 0 1 1 //方案值:1101

3
0 1 1 0 1
0 1 1 1 0
0 0 1 1 1
1 1 0 1 1
1 1 0 0 0 //方案值:10110
...

最后打印一行总方案数。

注:
·经过旋转、反转的方案属于不同方案;
·若无解,输出'Impossible'(不要单引号)。

·少于十个方案,则打印全部方案。

其它未提及格式以样例为准

样例1

样例输入1

7 5

样例输出1

1
1 0 0 0 0 
0 0 1 1 1 
0 0 1 0 1 
1 0 1 0 1 
0 1 1 1 1 
1 1 1 0 0 
1 1 0 1 0 

2
1 1 0 0 0 
1 1 0 1 1 
0 0 1 1 1 
0 1 1 1 0 
0 1 1 0 1 
0 0 0 0 0 
1 0 0 1 0 

3
0 0 1 0 0 
1 0 0 0 1 
0 0 0 0 0 
0 1 1 1 0 
0 1 0 1 0 
0 1 0 1 0 
0 1 1 1 0 

4
0 1 1 0 0 
0 1 1 0 1 
0 0 0 1 0 
1 0 1 0 1 
0 1 0 0 0 
1 0 1 1 0 
0 0 1 1 0 

5
1 0 0 1 0 
0 0 0 0 0 
0 1 1 0 1 
0 1 1 1 0 
0 0 1 1 1 
1 1 0 1 1 
1 1 0 0 0 

6
1 1 0 1 0 
1 1 1 0 0 
0 1 1 1 1 
1 0 1 0 1 
0 0 1 0 1 
0 0 1 1 1 
1 0 0 0 0 

7
0 0 1 1 0 
1 0 1 1 0 
0 1 0 0 0 
1 0 1 0 1 
0 0 0 1 0 
0 1 1 0 1 
0 1 1 0 0 

8
0 1 1 1 0 
0 1 0 1 0 
0 1 0 1 0 
0 1 1 1 0 
0 0 0 0 0 
1 0 0 0 1 
0 0 1 0 0 

9
0 0 0 0 1 
1 1 1 0 0 
1 0 1 0 0 
1 0 1 0 1 
1 1 1 1 0 
0 0 1 1 1 
0 1 0 1 1 

10
0 1 0 0 1 
0 0 0 0 0 
1 0 1 1 0 
0 1 1 1 0 
1 1 1 0 0 
1 1 0 1 1 
0 0 0 1 1 

16

限制

各个测试点1s
(最后一个也1s哦,哼哼哼哼……)

提示

数据规模很小哦!
做这道题会很有成就感的,很多答案排列得很有趣,特别是把15*15的答案中1改成■,0改成□,再去掉空格,哇!赏心悦目!

来源

Voldemort 原创

信息

ID
1326
难度
6
分类
搜索 点击显示
标签
(无)
递交数
144
已通过
39
通过率
27%
被复制
5
上传者

相关

在下列训练计划中:

RP++分类题库

提高代码能力