CF1749A Cowardly Rooks

题目描述

有一个 $n \times n$ 的国际象棋棋盘,上面放置了 $m$ 个车,满足以下条件: - 没有两个车占据同一个格子; - 没有两个车能够互相攻击。 一个车可以攻击其所在行或列的所有格子。 现在你可以选择恰好一个车,将其移动到另一个格子(可以选择移动哪一个车)。移动时,车可以沿着其所在的行或列移动到任意没有其他车阻挡的格子。 请判断是否存在一种移动方式,使得移动后依然没有任何两个车能够互相攻击。

输入格式

第一行包含一个整数 $t$($1 \le t \le 2000$),表示测试用例的数量。 每个测试用例的第一行包含两个整数 $n$ 和 $m$($1 \le n, m \le 8$),分别表示棋盘的大小和车的数量。 接下来的 $m$ 行,每行包含两个整数 $x_i$ 和 $y_i$($1 \le x_i, y_i \le n$),表示第 $i$ 个车的位置:$x_i$ 表示行号,$y_i$ 表示列号。 保证没有两个车占据同一个格子,且没有两个车能够互相攻击。

输出格式

对于每个测试用例,如果存在一种方案可以移动恰好一个车到另一个格子,并且移动后依然没有任何两个车能够互相攻击,输出 "YES";否则输出 "NO"。

说明/提示

在第一个测试用例中,两个车分别位于 $2 \times 2$ 棋盘的对角角落。每个车都可以移动到相邻的角落,但这样会被另一个车攻击。 在第二个测试用例中,只有一个车位于 $3 \times 3$ 棋盘的中央。它有 $4$ 个可行的移动,每次移动后都不会被其他车攻击。 由 ChatGPT 4.1 翻译