这题写的很恶心,我的代码风格太差了……在POJ上提交的时候是9000多B……罪过
我没有用到位运算。
有4种按钮,第1种全变,第2种2K+1,第3种2k,第4种3*k+1.
共2^4种,由于摁两种相当于没摁,所以列出所有的8种状态
灯灭为0,亮为1:
最终状态                                 灯灭的位置                     摁按钮次数
0000000000000000……  all                     1or2
0011100011100010……                          2or3  
0101010101010101……  2k+1                 1or2   
0110110110110110……  3k+1                 1or4
1001001001001001……  3k&&3k-1           2or3
1010101010101010……  2k                     1or2
1100011100011100……                          2or3
1111111111111111……  none                  0or2or3
当摁按钮次数c>=5时,奇数可以转化成1或3,偶数可以转化成2或4.
参考上面的摁按钮次数,可知c>=5时8种状态都可以达到。
根据c的值取上述中符合条件的状态,再加上附加的灯亮和灯灭的条件就可以得到解。