问题:
Akari Puzzle是日本Nikoli公司于1980创建一个逻辑迷题。该谜题是在一个由黑色和白色方块正方形网格中,按照如下规则放置灯泡:
1、 灯泡只能放在白色方块中;
2、在带有数字的黑色方块的水平和垂直方向邻接的白色方块放置灯泡,灯泡的总数量必须等于黑色方块中的数字;
3、灯泡的光线沿垂直方向和水平方向辐射,直到达到一个黑色的方形或网格的边缘,即该灯泡照亮的区域;
4、两个灯泡的不能互相照亮;
5、每个白色方形网格必须被照亮。
6、参见:http://www.nikoli.com/en/puzzles/bijutsukan/
解决方案(DFS+剪枝)
具体思路:
基本上是从第一个格子开始进行dfs搜索,自左至右,自上而下的顺序,对每个白格进行遍历,将所有情况搜索一遍。
#include <iostream> #include <cstdio> #include <cst