发现一些性质:
- 按的顺序可以任意
- 每个格子最多按一次,按两次相当于没按(要求最小步数)
- 第一行操作确定了,第二行的操作一定是被第一行的亮暗状态所决定的
操作下来,除了最后一行,前面的都是亮的,如果最后一行还是有暗的,则说明该类状态无解。
确定细节:
-
如何枚举第一行的操作
可以用递归实现,用for循环就可以使用位运算实现,每一个操作都可以用二进制代表,0-2^5-1,
判断二进制某位上是否为1,可以用i>>k[HTML_REMOVED] -
对于上下左右,一般就是定义偏移量的用法;
假设是8个方向,可以用两重循环,i枚举-1,1,j也是,特判中间0,0。
国际象棋中也是8个方向,马跳日。