AT_abc454_e [ABC454E] LRUD Moving
题目描述
你会得到正整数 $N, A, B$。保证 $A$ 和 $B$ 都在 $1$ 到 $N$ 之间(包括端点)。
有一个 $N\times N$ 的网格。第 $i$ 行第 $j$ 列的格子记作 $(i,j)$。初始时,有一个棋子放在格子 $(1,1)$ 处。
你需要经过 $N^2-2$ 步(每步走到一个相邻格子——上下左右均可),把棋子最终移动到 $(N,N)$,且需要经过网格上的每一个格子,除了 $(A,B)$,且在移动过程中,不能经过同一个格子超过一次(即除了起点 $(1,1)$ 和终点 $(N,N)$,在中途均不能重复到达,起点和终点在路径中也只能被经过一次)。
判断是否存在一条满足条件的路径。如果存在,输出一条方案。
有 $T$ 组数据,请依次解决。
输入格式
输入通过标准输入给出,格式如下:
> $T$
> $\text{case}_1$
> $\text{case}_2$
> $\vdots$
> $\text{case}_T$
每组数据一行,格式如下:
> $N \quad A \quad B$
输出格式
请按照题目顺序输出每组数据的答案,每组答案之间用换行分隔。
对于每组数据:
- 如果不存在满足要求的路径,输出 `No`。
- 如果存在,输出如下格式:
> Yes $S_1S_2\ldots S_{N^2-2}$
其中 $S_k$ 表示第 $k$ 步的方向,假设第 $k$ 步前棋子在 $(i,j)$:
- $S_k=$ `L` 表示从 $(i,j)$ 走到 $(i,j-1)$;
- $S_k=$ `R` 表示从 $(i,j)$ 走到 $(i,j+1)$;
- $S_k=$ `U` 表示从 $(i,j)$ 走到 $(i-1,j)$;
- $S_k=$ `D` 表示从 $(i,j)$ 走到 $(i+1,j)$。
如果有多组满足要求的路径,输出任意一组即可。
说明/提示
### 样例解释 1
考虑第一组数据。
起点在 $(1,1)$,可以按如下方式走两步:
- 首先向下移动,棋子到 $(2,1)$;
- 然后向右移动,棋子到 $(2,2)$。
该方案满足题目的要求。
### 约束条件
- $1\leq T \leq 5000$
- $2 \leq N \leq 10^3$
- $1 \leq A, B \leq N$
- $(A,B) \neq (1,1),(N,N)$
- 所有组数据的 $N^2$ 之和不超过 $10^6$
- 所有输入均为整数。
由 ChatGPT 5 翻译