0/1地图问题

打开所有的灯

题目描述

这个灯很奇怪,点一下就会将这个灯和其周围四盏灯的开关状态全部改变。现在你的任务就是就是告诉pmshz要全部打开这些灯。

例如

0  1  1
1  0  0
1  0  1

点一下最中间的灯【2,2】就变成了

0  0  1
0  1  1
1  1  1

再点一下左上角的灯【1,1】就变成了

1  1  1
1  1  1
1  1  1

达成目标。最少需要2步。

输出2即可。

输入格式

九个数字,3*3的格式输入,每两个数字中间只有一个空格,表示灯初始的开关状态。(0表示关,1表示开)

输出格式

1个整数,表示最少打开所有灯所需要的步数。

样例 #1

样例输入 #1

0 1 1
1 0 0
1 0 1

样例输出 #1

2



题目分析:我们首先尝试贪心法解答题目,比如每次找周围拥有最多0的数来改变,但是,马上会发现这是不对的。于是接着观察题目,题目要求全部置为1,我们尝试暴力法解题,如果一个数被我们改变了一次,那么我们一定不需要改变第二次,因为这样会造成两次结果一样,也可以说,我们可以不分先后任意改变灯泡,经管周围的灯泡也会改变,但这对最终答案是等价的,最后得到时间复杂度为O(9^9)的算法。

posted @ 2024-12-04 20:12  _窗帘  阅读(10)  评论(0)    收藏  举报