AT_arc195_c [ARC195C] Hamiltonian Pieces
题目描述
存在一个纵向有 $10^9$ 格、横向有 $10^9$ 格的棋盘,以及 $R$ 个红色棋子和 $B$ 个蓝色棋子。其中满足 $2 \leq R + B$。棋盘从上往下第 $r$ 行、从左往右第 $c$ 列的格子称为格子 $(r, c)$。红色棋子每步可纵向或横向移动 1 格,蓝色棋子每步可斜向移动 1 格。更准确地说:
- 位于格子 $(r, c)$ 的红色棋子可一步移动到 $(r+1, c)$、$(r, c+1)$、$(r-1, c)$、$(r, c-1)$(若目标格子存在)。
- 位于格子 $(r, c)$ 的蓝色棋子可一步移动到 $(r+1, c+1)$、$(r+1, c-1)$、$(r-1, c+1)$、$(r-1, c-1)$(若目标格子存在)。
现在需要将所有 $(R+B)$ 个棋子以任意顺序放置在棋盘上,且必须满足以下条件:
1. 每个格子最多放置 1 个棋子。
2. 对于每个 $i$($1 \leq i \leq R+B-1$),第 $i$ 个放置的棋子必须能够一步移动到第 $(i+1)$ 个放置的棋子所在的格子。
3. 第 $(R+B)$ 个放置的棋子必须能够一步移动到第 1 个放置的棋子所在的格子。
请判断是否存在满足条件的放置方式。若存在,请给出一种具体方案。
给定 $T$ 个测试用例,请分别解答。
输入格式
输入通过标准输入给出,格式如下:
> $ T $
> $\mathrm{case}_1$
> $\mathrm{case}_2$
> $\vdots$
> $\mathrm{case}_T$
每个测试用例的格式为:
> $ R $ $ B $
输出格式
对每个测试用例按顺序输出答案,用换行分隔。
若不存在满足条件的放置方式,输出 `No`。
若存在,按以下格式输出:
> Yes
> $ p_1 $ $ r_1 $ $ c_1 $
> $\vdots$
> $ p_{R+B} $ $ r_{R+B} $ $ c_{R+B} $
其中:
- $ p_i $ 表示第 $i$ 个放置的棋子类型(红棋为 `R`,蓝棋为 `B`)
- $ r_i, c_i $ 是 $1 \leq r_i, c_i \leq 10^9$ 的整数,表示第 $i$ 个棋子放置在格子 $(r_i, c_i)$
说明/提示
### 约束条件
- $ 1 \leq T \leq 10^5 $
- $ 0 \leq R, B $
- $ 2 \leq R + B \leq 2 \times 10^5 $
- 所有测试用例的 $ R + B $ 总和不超过 $ 2 \times 10^5 $
- 输入值均为整数
### 样例解释 1
第一个测试用例中,棋盘左上角 $4 \times 5$ 区域的布局如下:
```
.....
.BBR.
.RB..
.....
```
其中:
- `R` 表示红棋
- `B` 表示蓝棋
- `.` 表示空位
第二个测试用例不存在满足条件的放置方式。
翻译由 DeepSeek R1 完成