POJ1222_EXTENDED LIGHTS OUT(http://acm.pku.edu.cn/JudgeOnline/problem?id=1222)
大意就是有一个灯组成的矩阵,1表示灯亮,0表示灯灭。每个灯都有一个开关,每个开关能改变它自己所处位置和它上、下、左、右,一共是5个灯的状态,即原来为亮的灯熄灭,原来为灭的灯点亮。问按下那些开关能让灯全部熄灭。
这题的Size不大,5*6的矩阵,很容易想到穷举,但是如果纯粹的穷举复杂度是2^30,这显然是不能接受的,但是仔细想想,穷举似乎是唯一的办法,只是穷举有必要全部都作为穷举的范围吗?分析一下这个题目的规则可以看出,只要第一行灯的开关状态一定,那么以下四行都可以根据要求推出来!这就是这题最有启发的地方。也就是说,如果原状态矩阵org[i][j]和它周围4个开关的改变矩阵chg[i-1][j],chg[i][j],chg[i][j-1],chg[i][j+1]中1个数奇偶性不相同的话,那么可以确定chg[i+1][j]也为1,否则为0。
这样只需要枚举第1行的所有情况,即2^6种,就可以完成搜索了。
因此,穷举也不能一根经,要仔细分析各状态可能的关系,以得出最少的穷举范围。
posted on 2009-03-13 14:05
古月残辉 阅读(198)
评论(0) 编辑 收藏 引用 所属分类:
POJ