P17524 [ECUSTPC 2026 Fall] 净化行动 3

题目背景

> *除恶务尽——何为「恶」,我们自有裁定。*

题目描述

Maddy 仍在清剿 Baddy 的邪恶军团……(这已经是第三次了!) 游戏在一个无限大的平面直角坐标系(可以看作无限大的棋盘)上进行。Baddy 操控了 $n$ 个**炮**棋子。这些炮分别部署在 $(x_1, y_1), (x_2, y_2), \ldots, (x_n, y_n)$ 上,且固定不会移动。 在象棋规则中,炮的攻击规则是"隔山打牛"。如果两个炮 $A$ 和 $B$ 处于同一行或同一列,且它们之间**有且仅有**一个其他炮 $C$,那么我们称 $A$ 攻击了 $B$(同时 $B$ 也攻击了 $A$),而 $C$ 就是它们攻击的"炮架"。 每一次,Maddy 可以选择一个**当前没有受到任何其他炮攻击**的炮,并将其摧毁。被摧毁的炮会被立即移出棋盘,它将不再能攻击其他炮,也不能再作为其他炮的"炮架"。 Maddy 的目标是摧毁所有的 $n$ 个炮。是否存在一种摧毁顺序,使得 Maddy 可以最终清空棋盘?

输入格式

第一行输入一个整数 $T$ ($1 \le T \le 10^5$),表示测试数据的数量。 每组测试数据第一行输入一个整数 $n$ ($1 \le n \le 2 \times 10^5$),表示炮的数量。 随后 $n$ 行,每行输入两个整数 $x_i, y_i$ ($-10^9 \le x_i, y_i \le 10^9$),表示第 $i$ 个炮的位置。 保证所有测试数据的 $\sum n \le 2 \times 10^5$,且单组测试数据中所有炮的位置两两不同。

输出格式

对于每组测试数据,若存在一种合法的摧毁顺序能够清空棋盘,则输出一行 `YES`,否则输出一行 `NO`。 注意评测时不会区分 `YES` 和 `NO` 的大小写,换言之,当答案是肯定的时候输出 `yes`、`YES`、`Yes`、`YeS` 等都会被认为是正确的。

说明/提示

### 样例 1 解释 对于第 $1$ 组测试数据,三个炮在同一列上。初始时,$(0, 0)$ 和 $(0, 2)$ 互相攻击(以 $(0, 1)$ 为炮架),而 $(0, 1)$ 没有受到攻击。因此可以先摧毁 $(0, 1)$,然后 $(0, 0)$ 和 $(0, 2)$ 都不再受到攻击,可以按任意顺序摧毁。 对于第 $2$ 组测试数据,四个炮在同一行上。初始时,$(0, 0)$ 和 $(2, 0)$ 互相攻击(以 $(1, 0)$ 为炮架),$(1, 0)$ 和 $(3, 0)$ 互相攻击(以 $(2, 0)$ 为炮架)。因此 $(0, 0)$、$(1, 0)$、$(2, 0)$、$(3, 0)$ 都受到攻击,无法摧毁任何一个,因此无解。