#4178. D - Tiling 平铺 比赛编号345

D - Tiling 平铺 比赛编号345

题目翻译

时间限制​: 2秒 / ​内存限制​: 1024MB

分数​: 450分


问题描述

有一个 HW 列的网格,每个格子的边长为 1,我们有 N 块瓷砖。第 i 块瓷砖的大小为 ​Aᵢ × Bᵢ​(​1 ≤ i ≤ N​)。

现在,判断是否可以将这些瓷砖放置在网格中,使得满足以下所有条件:

  • 每个格子恰好被一个瓷砖覆盖。
  • 可以不使用一些瓷砖。
  • 瓷砖可以旋转或翻转放置,但每块瓷砖必须与网格的边对齐,且不能超出网格范围。

输入格式

输入格式如下:

N
H W
A₁ B₁
A₂ B₂
…
Aₙ Bₙ
  • N 为瓷砖的数量,满足 ​1 ≤ N ≤ 7​。
  • HW 分别为网格的行数和列数,满足 ​1 ≤ H, W ≤ 10​。
  • 接下来的 N 行,每行包含两个整数 Aᵢ 和 ​Bᵢ​,表示第 i 块瓷砖的尺寸,满足 ​1 ≤ Aᵢ, Bᵢ ≤ 10​。

输出格式

如果可以将瓷砖放置在网格中并满足所有条件,输出 Yes;否则,输出 No


示例输入 1

5
5 5
1 1
3 3
4 4
2 3
2 5

示例输出 1

Yes

示例说明

将第 ​2​、第 4 和第 5 块瓷砖按如下方式放置,可以覆盖网格中的每个格子:

第2块瓷砖放在(1,1)到(3,3)的区域,覆盖了 3x3 的区域。
第4块瓷砖放在(3,3)到(4,5)的区域,覆盖了 2x3 的区域。
第5块瓷砖放在(4,5)到(5,5)的区域,覆盖了 1x1 的区域。

这三个瓷砖能够恰好覆盖整个 5x5 网格。


示例输入 2

3
3 3
2 2
3 3
1 1

示例输出 2

No

示例说明

对于这个网格,无法将所有瓷砖放置在网格中且每个格子都被覆盖。 image

因此,输出 Yes


示例输入 2

1 1 2
2 3

示例输出 2

No

无法将瓷砖放置在网格内而不让其超出网格范围。 因此,输出 No


示例输入 3

1 2 2
1 1

示例输出 3

No

无法用瓷砖覆盖所有格子。 因此,输出 No


示例输入 4

5 3 3
1 1
2 2
2 2
2 2
2 2

示例输出 4

No

注意:每个格子必须恰好被一块瓷砖覆盖。