CF1844E Great Grids
题目描述
一个 $n \times m$ 的字符网格被称为“优秀”,当且仅当满足以下三个条件:
- 每个字符都是 'A'、'B' 或 'C'。
- 每个 $2 \times 2$ 的连续子网格都包含三种不同的字母。
- 任何两个有公共边的单元格包含的字母都不同。
用 $(x, y)$ 表示从上到下第 $x$ 行、从左到右第 $y$ 列的单元格。
你需要构造一个满足 $k$ 个约束条件的优秀网格。每个约束由两个单元格 $(x_{i,1}, y_{i,1})$ 和 $(x_{i,2}, y_{i,2})$ 组成,这两个单元格恰好共用一个角。你希望这两个单元格中的字母相同。
请判断是否存在一个满足所有约束条件的优秀网格。
输入格式
每组测试包含多组测试用例。第一行包含测试用例数 $t$($1 \le t \le 10^3$)。接下来是每组测试用例的描述。
每组测试用例的第一行包含三个整数 $n$、$m$ 和 $k$($2 \le n, m \le 2 \times 10^3$,$1 \le k \le 4 \times 10^3$)。
接下来的 $k$ 行,每行包含四个整数 $x_{i,1}$、$y_{i,1}$、$x_{i,2}$ 和 $y_{i,2}$($1 \le x_{i,1} < x_{i,2} \le n$,$1 \le y_{i,1}, y_{i,2} \le m$)。保证 $(x_{i,2}, y_{i,2}) = (x_{i,1} + 1, y_{i,1} + 1)$ 或 $(x_{i,2}, y_{i,2}) = (x_{i,1} + 1, y_{i,1} - 1)$。
所有单元格对互不相同,即对于所有 $1 \le i < j \le k$,不存在 $x_{i,1} = x_{j,1}$、$y_{i,1} = y_{j,1}$、$x_{i,2} = x_{j,2}$ 且 $y_{i,2} = y_{j,2}$。
保证所有测试用例中 $n$ 的总和不超过 $2 \times 10^3$。
保证所有测试用例中 $m$ 的总和不超过 $2 \times 10^3$。
保证所有测试用例中 $k$ 的总和不超过 $4 \times 10^3$。
输出格式
对于每组测试用例,如果存在满足所有约束条件的优秀网格,输出 "YES";否则输出 "NO"。
你可以用任意大小写输出答案。例如,"yEs"、"yes"、"Yes" 和 "YES" 都会被识别为肯定回答。
说明/提示
在第一个测试用例中,以下优秀网格满足所有约束条件:
BABCCBCAACAB
在第二个测试用例中,两个约束条件意味着单元格 $(1,1)$ 和 $(2,2)$ 必须相同,单元格 $(1,2)$ 和 $(2,1)$ 也必须相同,这使得唯一的 $2 \times 2$ 子网格无法包含三种不同的字母。
由 ChatGPT 4.1 翻译