040day(枚举例题(熄灯问题)的学习)

《2017年11月19日》【连续040天】

标题:枚举例题(熄灯问题)的学习;

内容:熄灯问题:

-有一个由按钮组成的矩阵,其中每行有6个按钮,共5行;

-按钮上有一盏灯;

-当按下一个按钮时该按钮以及周围位置(上下左右)的灯都会改变状态;

给定矩阵的初始状态,求一种按按钮方案,使得所有的灯都熄灭;

样例输入(0表示灯是熄灭的,1表示灯是点亮的):     样例输出(1为需要按下,0为不需要按下): 

2(两组)                                                        PUZZLE #1          

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

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

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

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

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

0 0 1 0 1 0                                                        PUZZLE #2

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

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

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

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

                                                                           1 0 1 1 0 1

思路:

当第一行的灯经过开关操作后,存在亮与熄灭两种灯,为了熄灭亮的灯,需要将第二行对应的开关摁下,因此第二行是确定的,类推,当一行确定时,

结果就确定;

枚举第一行,2^6=64,其状态可用整数表示;

注意:矩阵的每一行只有1和0,因此可把它们存在一个字符中;

我们可用位运算

在解决时出现了问题,留待明日解决;

 

明日计划:枚举例题练习;

你可能感兴趣的:(040day(枚举例题(熄灯问题)的学习))