首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
熄灯专题
[笔记][中国大学mooc][程序设计与算法(二) 算法基础][枚举][局部枚举法] POJ1222 熄灯问题
题目 分析 按照一般的穷举法,一共有30个开关,所以解空间有 2 30 2^{30} 230个可能,需要减少枚举数目: 如果存在某个局部,一旦这个局部的状态被确定,那么剩余其他部分的状态只能是确定的一种,或者不多的n种,那么就只需枚举这个局部的状态即可 对于本题目,第一行开关按下的状态可以决定剩余所有的状态,将解空间大小缩小为 2 5 2^{5} 25 代码 #include <
阅读更多...
熄灯问题POJ1222
// 熄灯问题POJ1222#include <iostream>#include <cstring>using namespace std;const int ROW = 5;const int COL = 6;void change(char lamp[], int row, int col) {if (row >= 0 && row < ROW && col >= 0 && col
阅读更多...
【算法笔记】枚举之熄灯问题
在学北大郭玮和刘家瑛老师的算法基础,做点笔记 题目: 有一个5*6矩阵的按钮,每个按钮对应一盏灯,每按下一个按钮,这个按钮对应的灯的上下左右的灯都会改变一次状态,通过输入的灯的状态,要求输出能使所有灯熄灭的按钮解决方案 解决思路1: 枚举所有可能,将按钮所有可能的状态枚举出来,从而找到符合条件的组合。 这种思路简单粗暴,但是有总共有30个按钮,要枚
阅读更多...
POJ-2811:熄灯问题
题目描述:(此题目是2012北大信科夏令营上机考试题目) 总时间限制: 1000ms 内存限制: 65536kB 描述 有一个由按钮组成的矩阵,其中每行有6个按钮,共5行。每个按钮的位置上有一盏灯。当按下一个按钮后,该按钮以及周围位置(上边、下边、左边、右边)的灯都会改变一次。即,如果灯原来是点亮的,就会被熄灭;如果灯原来是熄灭的,则会被点亮。在矩阵角上的按钮改变3
阅读更多...
算法实践:熄灯问题(枚举)
熄灯问题 描述 有一个由按钮组成的矩阵,其中每行有6个按钮,共5行。每个按钮的位置上有一盏灯。当按下一个按钮后,该按钮以及周围位置(上边、下边、左边、右边)的灯都会改变一次。即,如果灯原来是点亮的,就会被熄灭;如果灯原来是熄灭的,则会被点亮。在矩阵角上的按钮改变3盏灯的状态;在矩阵边上的按钮改变4盏灯的状态;其他的按钮改变5盏灯的状态。 在上图中,左边矩阵中用X标记的按钮表示被按下,右边的
阅读更多...