Problem 3799 --Smzzl with Greedy Snake

3799: Smzzl with Greedy Snake

"
Time Limit $1$ 秒/Second(s) Memory Limit $128$ 兆字节/Megabyte(s)
提交总数 $0$ 正确数量 $0$
裁判形式 标准裁判/Standard Judge 我的状态 尚未尝试
难度 分类标签
Smzzl is going to make an AI for Greedy Snake. The game goes on xOy plane and there is no obstacles in the plane.

In this game, the snake takes 1 unit of time to move forward for one unit of length. It also takes 1 unit of time for the snake to rotate for 90 degrees. (The snake must rotate for the whole unit of time.) There is a food in the map initially. After the snake eat each food, the next food appears.

Smzzl certainly want the snake to eat the food as fast as possible, so he need to minimize the time when the snake eat each food. Please output a valid operate sequence.
The input consists of multiple test cases. 

The first line contains an integer T (1≤T≤200) -- the number of test cases.

For each test case:

In the first line, there are three integers x,y,d (|x|,|y|≤1040≤d≤3). The snake starts on (x,y)d shows the direction of the head of the snake. (0 for y+, 1 for x+, 2 for y-, 3 for x-)

In the second line, there is an integer n (1≤n≤105), which is the number of foods.

In the next n lines, each contains two integers x,y (|x|,|y|≤104), which means the next food appears at (x,y).

It is guaranteed that any line that connects two foods that appear adjacently does not parallel to the x-axis or the y-axis.
For each test case, output the shortest operation sequence. Output 'f' for going forward, 'c' for rotating clockwise, 'u' for rotating counterclockwise. Each operation lasts for one unit of time.

It can be proved that there is only one operation sequence which meets the requirements.

It is guranteed that the total length of output does not exceed 2×106.
2
0 0 0
2
-1 -1
1 1
0 0 2
5
-1 2
2 4
3 -5
4 -2
5 0
ufufuffuff
cfcffffcffffcfffffffffufufffffcf

推荐代码 查看3799 所有题解 上传题解视频得图灵币

本题记录 用 户(点击查看用户) 运行号(点击购买题解) 时 间
算法最快[$ $ms]
内存最少[$ $KB]
第一AC
第一挑战

赛题来源/所属竞赛 N/A

竞赛编号 竞赛名称 竞赛时间 访问比赛