- 这个题的意思是:
一共8栈灯,每盏灯的状态改变都会改变它前后挨着的两个灯的状态,要求点亮所有的灯获得flag
要求输入数的范围在1-8之间,0是重新开始
思路一:
- 一:
算法是1-8,8栈灯,点一个改变3状态,写脚本爆破吧!!(想模仿出题人的想法把中间过程表达出来,结果还是自己太年 轻)
贪心
一个灯如果按了第二下,就会抵消上一次按下所产生的影响。
因此,一个灯只有按或者不按两种情况,不存在一个灯要开关多次的情况。
例如八个灯 00000000
按1后 11000000
按3后 10110000
按1后 01110000
这和八个灯 00000000
只按一次3后 01110000
是完全相同的情况
#####但是后来我忽略了一个因素:我们这里最后一个灯会影响第一个灯,它是个环,放在这不行
lamp = [0, 0, 0, 0, 0, 0, 0, 0]
a = []
status = True
for i in range(1, 6, 1):
if lamp[i-1] == 0:
lamp[i-1] ^= 1
lamp[i] ^= 1
lamp[i+1] ^= 1
if lamp[7] == 0:
lamp[7] &#