[ICPC2021 Nanjing R] Oops, It’s Yesterday Twice More
题面翻译
有一张 n×nn\times nn×n 的网格图,每个格子上都有一只袋鼠。对于一只在 (i,j)(i,j)(i,j) 的袋鼠,有下面四个按钮:
- 按钮
U:如果 i>1i>1i>1,移动到 (i−1,j)(i-1,j)(i−1,j),否则,原地不动; - 按钮
D:如果 i<ni<ni<n,移动到 (i+1,j)(i+1,j)(i+1,j),否则,原地不动; - 按钮
L:如果 j>1j>1j>1,移动到 (i,j−1)(i,j-1)(i,j−1),否则,原地不动; - 按钮
R:如果 j<nj<nj<n,移动到 (i,j+1)(i,j+1)(i,j+1),否则,原地不动。
每次按下按钮,都会对所有的袋鼠生效。请输出一种使得所有袋鼠最终都在 (a,b)(a,b)(a,b) 的操作序列,并且序列的长度小于等于 3×(n−1)3\times(n-1)3×(n−1)。
题目描述
After the great success in 2018, 2019, and 2020, Nanjing University of Aeronautics and Astronautics (NUAA) will host the International Collegiate Programming Contest\textit{International Collegiate Programming Contest}International Collegiate Programming Contest (ICPC) Nanjing regional for the fourth time.
Team Power of Two\textbf{\textit{Power of Two}}Power of Two and team Three Hold Two\textbf{\textit{Three Hold Two}}Three Hold Two won the champion for Tsinghua University in 2018 and 2019. In 2020, team Inverted Cross\textbf{\textit{Inverted Cross}}Inverted Cross from Peking University won the champion. In 2021, there are around 700700700 teams including the defending champion\textbf{the defending champion}the defending champion participating in the contest. We are so excited to see who will win this year!
Although we can’t gather in Nanjing this time due to the pandemic, we should still be grateful for the hard work done by all staff and volunteers for this contest. Thank you all for your great contribution to this contest!
In the 2018 contest, problem K, Kangaroo Puzzle\textbf{\textit{Kangaroo Puzzle}}Kangaroo Puzzle, requires the contestants to construct an operation sequence for the game:
The puzzle is a grid with nnn rows and mmm columns (1≤n,m≤201 \le n, m \le 201≤n,m≤20) and there are some (at least 222) kangaroos standing in the puzzle. The player’s goal is to control them to get together. There are some walls in some cells and the kangaroos cannot enter the cells with walls. The other cells are empty. The kangaroos can move from an empty cell to an adjacent empty cell in four directions: up, down, left, and right.
There is exactly one kangaroo in every empty cell in the beginning and the player can control the kangaroos by pressing the button U, D, L, R on the keyboard. The kangaroos will move simultaneously according to the button you press.
The contestant needs to construct an operating sequence of at most 5×1045 \times 10^45×104 steps consisting of U, D, L, R only to achieve the goal.
In the 2020 contest, problem A, Ah, It’s Yesterday Once More\textbf{\textit{Ah, It's Yesterday Once More}}Ah, It’s Yesterday Once More, requires the contestants to construct an input map to hack the following code of the problem described before:
#include <bits/stdc++.h>
using namespace std;
string s = "UDLR";
int main()
{
srand(time(NULL));
for (int i = 1; i <= 50000; i++) putchar(s[rand() % 4]);
return 0;
}
Now in the 2021 contest, Paimon prepares another version of the problem for you. You are given a grid with nnn rows and nnn columns (2≤n≤5002 \leq n \leq 5002≤n≤500). All cells are empty and there is one kangaroo standing in each cell.
Similarly, you can control the kangaroos by pressing the button U, D, L, R on the keyboard. The kangaroos will move simultaneously according to the button you press. Specifically, for any kangaroo located in the cell on the iii-th row and the jjj-th column, indicated by (i,j)(i,j)(i,j):
- Button U: it will move to (i−1,j)(i-1,j)(i−1,j) if i>1i>1i>1. Otherwise, it will stay in the same grid.
- Button D: it will move to (i+1,j)(i+1,j)(i+1,j) if i<ni<ni<n. Otherwise, it will stay in the same grid.
- Button L: it will move to (i,j−1)(i,j-1)(i,j−1) if j>1j>1j>1. Otherwise, it will stay in the same grid.
- Button R: it will move to (i,j+1)(i,j+1)(i,j+1) if j<nj<nj<n. Otherwise, it will stay in the same grid.
You need to construct an operating sequence consisting only of characters U, D, L, and R. After applying it, you must make sure every kangaroo will gather at the specific cell (a,b)(a,b)(a,b). The length of the operating sequence cannot exceed 3(n−1)3(n-1)3(n−1).
输入格式
There is only one test case in each test file.
The first and only line of the input contains three integers nnn, aaa, bbb (2≤n≤5002 \leq n \leq 5002≤n≤500, $ 1 \leq a,b \leq n$) indicating the size of the grid and the target cell.
输出格式
Output a string consisting only of characters U, D, L and R in one line. And its length mustn’t exceed 3(n−1)3(n-1)3(n−1). It can be proved that the answer always exists.
样例 #1
样例输入 #1
3 3 3
样例输出 #1
RRDD
样例 #2
样例输入 #2
4 3 2
样例输出 #2
DLDLDLUR
Scratch实现
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6Kf8k3Mj-1720310956238)(https://i-blog.csdnimg.cn/direct/019f1e2c2c0e4040833655c49e998c16.png)]
后续
接下来我会不断用scratch来实现信奥比赛中的算法题、Scratch考级编程题实现、白名单赛事考题实现,感兴趣的请关注,我后续将继续分享相关内容
用Scratch图形化工具信奥P9840 普及组ICPC2021 Nanjing R Oops, It‘s Yesterday Twice More&spm=1001.2101.3001.5002&articleId=140231074&d=1&t=3&u=de9a6b4c33ea4f62b86600bbab58c1d0)
1405

被折叠的 条评论
为什么被折叠?



