铺瓷砖
题解方法
- 深度优先搜索
深度优先搜索
- Do 访问 (x, y):
- If 抵达右边界,换行,结束。
- If 抵达下边界,保存当前瓷砖数为最小瓷砖数,结束。
- If filled,访问 (x, y + 1)。
- If 当前当前瓷砖数 + 1 > 最小瓷砖数,说明该方案不是最优解,结束。
- Do 选择填充正方形,边长 $len \in [1, \min(n - x, m - y)]$:
- If 已填充,break。
- 填充正方形。
- 访问 (x, y + len)。
- 取消填充。
核心代码
深度优先搜索
1 | private void dfs(int x, int y, int cnt) { |