poj1222||zoj 1354 Extended Lights Out(枚举)

好恨啊,枚举题都不行了。看了报告才会做的。不过这也算是一个类型题,且yy一番。

题目是说有个6*5的0-1状态,开关可以控制其边上的4个灯。要求灯全灭的开关状态。

所有的状态有2^30个全部枚举基本上是不可能的…>_<

有个好方法是:只要第一行有个确定的结果,就可以推出剩下的各行。

问题1:怎么确定第一行:这里就体现了何为枚举….额,6层循环举出了第一行的状态。

问题2:怎么推出2-5行的状态,根据中间一个格子的状态,可以求出其下面一行的那个位置的按钮开关情况。 要达到灭的情况有式子可以说明:map[i][j]+press[i][j]+press[i-1][j]+press[i+1][j]+press[i][j-1]+press[i][j+1])%2=0

所以可以得到:press[i+1][j]=map[x][y]+press[x][y]+press[x-1][y]+press[x][y-1]+press[x][y+1]

的值。

但是这种做法,数据小还行,大了的话难免超时。

推荐代码:http://blog.163.com/ty_sky0908/blog/static/13336033520110645242885/

有另一种做法:高斯消元,先不做。

你可能感兴趣的:(poj1222||zoj 1354 Extended Lights Out(枚举))