CF1472F New Year's Puzzle

题目描述

每年圣诞老人都会给所有孩子送礼物。然而,每个国家都有自己的传统,这一过程的方式也各不相同。例如,在 Berland,你需要解答新年谜题。 Polycarp 得到了如下问题:给定一个大小为 $2 \times n$ 的网格带,其中某些格子被阻塞。你需要判断是否可以用 $2 \times 1$ 和 $1 \times 2$ 的骨牌(多米诺骨牌)覆盖所有未被阻塞的格子。 例如,如果 $n = 5$,网格带如下(黑色格子为阻塞格): ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1472F/b41649f0d0bdba5578287fa746baff1e8a9677b4.png) 那么可以用两个竖直骨牌和两个水平骨牌进行覆盖,如下图所示(不同颜色表示不同的骨牌)。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1472F/f3eba115e4f25b885841d9adf40142fd3358cffa.png) 如果 $n = 3$,网格带如下: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1472F/1bfdaad6e61d408b265451fa0ae69099925aea09.png) 则无法覆盖所有未被阻塞的格子。 Polycarp 轻松地解决了这个问题并收到了新年礼物。你能解决它吗?

输入格式

第一行包含一个整数 $t$($1 \leq t \leq 10^4$)——表示测试用例的数量。接下来是 $t$ 个测试用例。 每个测试用例前有一个空行。 每个测试用例的第一行包含两个整数 $n$ 和 $m$($1 \le n \le 10^9$,$1 \le m \le 2 \cdot 10^5$)——表示网格带的长度和被阻塞的格子数量。 接下来的 $m$ 行,每行包含两个整数 $r_i, c_i$($1 \le r_i \le 2, 1 \le c_i \le n$)——表示被阻塞格子的行号和列号。保证所有被阻塞的格子互不相同,即 $(r_i, c_i) \ne (r_j, c_j), i \ne j$。 保证所有测试用例中 $m$ 的总和不超过 $2 \cdot 10^5$。

输出格式

对于每个测试用例,输出一行: - 如果可以用 $2 \times 1$ 和 $1 \times 2$ 的骨牌覆盖所有未被阻塞的格子,输出 "YES"; - 否则输出 "NO"。 你可以以任意大小写输出 "YES" 和 "NO"(例如,yEs、yes、Yes 和 YES 都会被识别为肯定)。

说明/提示

前两个测试用例在题目描述中已经解释。 在第三个测试用例中,网格带如下: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1472F/fb18b851c5e691e6cc3d6920785bdb0ec1abf74e.png) 很容易验证,未被阻塞的格子无法被骨牌覆盖。 由 ChatGPT 4.1 翻译