《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,因此可把它们存在一个字符中;
我们可用位运算;
在解决时出现了问题,留待明日解决;
明日计划:枚举例题练习;
本文介绍了一个经典的熄灯问题,通过位运算的方法来寻找使所有灯熄灭的操作方案。文章提供了具体的例子,展示了如何通过确定每行的状态来找到解题路径。
16万+

被折叠的 条评论
为什么被折叠?



