在俄罗斯方块游戏中,只有下面1种大方块,由四个正方形小方块组成。现在,请计算在给定网格大小的情况下,最多可以放置多少个大方块。 具体规则如下:
1、网格为正方形网络。
2、方块不能重叠。
3、方块不能超出网格的边界。
在一个n×n的网格游戏中,可以放置由4个小方块组成的大方块(类似俄罗斯方块)。网格中有k个位置不能放置方块,这些位置通过坐标给出。我们需要计算在不重叠、不超出边界的情况下,最多可以放置多少个大方块。输入的第一行包含n和k,接下来有k行给出不能放置方块的坐标对(y,x)。输出结果为最多能放下的大方块数量。举例来说,对于输入2 0
,输出为1
;对于输入4 3
,输出为2
;而输入3 3
则输出为0
。
本题非常类似于:LeetCode 1240. 铺瓷砖。
采用深度优先搜索(DFS)和回溯法来解决大方块的摆放问题。我们通过递归遍历每个位置,判断是否可以放置一个 2x2 的大方块。