好恨啊,枚举题都不行了。看了报告才会做的。不过这也算是一个类型题,且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/
有另一种做法:高斯消元,先不做。