P14581 [LNCPC 2025] 海鸥奇遇
题目背景
!%?#¥@ 和 Z 形管道猫在一起看海鸥。
题目描述
在一张多行多列的网格中,初始有 $n$ 只海鸥和 $n$ 份食物各自位于**互不相同**的一个格子。
您可以指挥海鸥觅食。在一步指挥中,您需要在网格中选择一只海鸥并且在上(行指标减小,列指标不变)、下(行指标增大,列指标不变)、左(行指标不变,列指标减小)、右(行指标不变,列指标增大)中选择一个方向,然后这只海鸥会往这个方向飞到最近的没有海鸥的格子。当海鸥飞到了有食物的格子时,这只海鸥会吃掉这份食物并且飞离这张网格,也即这只海鸥和这份食物会立即从这张网格中**消失**。
请您执行恰好 $n$ 步指挥,使得所有海鸥吃掉食物飞离网格,或者报告无解。
输入格式
每个测试点包含多组测试数据。第一行给定一个整数 $T(1\leq T\leq 10^3)$,表示测试数据组数。
对于每组测试数据:\
第一行给定一个整数 $n(1\leq n\leq5000)$,表示有 $n$ 只海鸥、$n$ 份食物和 $n$ 步指挥限制。\
接下来 $n$ 行,每行给定两个整数 $r_i,c_i(1\leq r_i,c_i\leq5000)$,其中第 $i$ 行的两个整数 $r_i,c_i$ 表示**编号为 $i$** 的海鸥初始位于第 $r_i$ 行第 $c_i$ 列的格子。\
接下来 $n$ 行,每行给定两个整数 $r_i,c_i(1\leq r_i,c_i\leq5000)$,表示有一份食物初始位于第 $r_i$ 行第 $c_i$ 列的格子。\
保证所有海鸥和食物的初始位置互不相同。
保证在每个测试点中所有测试数据的 $n$ 的总和不超过 $5000$。
输出格式
对于每组测试数据:\
第一行输出 `Yes` 或者 `No`,分别表示有解或者无解。\
如果有解,那么接下来 $n$ 行,每行输出用一个空格隔开的一个整数 $u_i$ 和一个字符 $c_i(c_i\in\{\text{U,D,L,R}\})$,其中第 $i$ 行的整数 $u_i$ 表示您在第 $i$ 步指挥中选择编号为 $u_i$ 的海鸥,字符 $c_i$ 为 $\text{U}$、$\text{D}$、$\text{L}$ 或者 $\text{R}$ 分别表示选择上、下、左或者右的飞行方向。如果存在多种合法的指挥方案,那么输出其中任意一种。
请注意不要输出多余的空格。