随笔-20  评论-16  文章-36  trackbacks-0

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 古月残辉 阅读(178) 评论(0)  编辑 收藏 引用 所属分类: POJ

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理