欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF648C.Путь Робота
Путь Робота
Вам задано прямоугольное клетчатое поле, состоящее из n строк и m столбцов.Поле содержит цикл из символов «\*», такой что:
- цикл можно обойти, посетив каждую его клетку ровно один раз, перемещаясь каждый раз вверх/вниз/вправо/влево на одну клетку;
- цикл не содержит самопересечений и самокасаний, то есть две клетки цикла соседствуют по стороне тогда и только тогда, когда они соседние при перемещении вдоль цикла (самокасание по углу тоже запрещено).
Ниже изображены несколько примеров допустимых циклов:

Все клетки поля, отличные от цикла, содержат символ «.».Цикл на поле ровно один.Посещать клетки, отличные от цикла, Роботу нельзя.
В одной из клеток цикла находится Робот.Эта клетка помечена символом «S».Найдите последовательность команд для Робота, чтобы обойти цикл.Каждая из четырёх возможных команд кодируется буквой и обозначает перемещение Робота на одну клетку:
- «
U» — сдвинуться на клетку вверх, - «
R» — сдвинуться на клетку вправо, - «
D» — сдвинуться на клетку вниз, - «
L» — сдвинуться на клетку влево.
Робот должен обойти цикл, побывав в каждой его клетке ровно один раз (кроме стартовой точки — в ней он начинает и заканчивает свой путь).
Найдите искомую последовательность команд, допускается любое направление обхода цикла.
输入
В первой строке входных данных записаны два целых числа n и m (3 ≤ n, m ≤ 100) — количество строк и столбцов прямоугольного клетчатого поля соответственно.
В следующих n строках записаны по m символов, каждый из которых — «.», «\*» или «S».Гарантируется, что отличные от «.» символы образуют цикл без самопересечений и самокасаний.Также гарантируется, что на поле ровно одна клетка содержит «S» и что она принадлежит циклу.Робот не может посещать клетки, помеченные символом «.».
输出
В первую строку выходных данных выведите искомую последовательность команд для Робота.Направление обхода цикла Роботом может быть любым.
注释
В первом тестовом примере для обхода по часовой стрелке последовательность посещенных роботом клеток выглядит следующим образом:
- клетка (3, 2);
- клетка (3, 1);
- клетка (2, 1);
- клетка (1, 1);
- клетка (1, 2);
- клетка (1, 3);
- клетка (2, 3);
- клетка (3, 3);
- клетка (3, 2).
样例
3 3
***
*.*
*S*
LUURRDDL
6 7
.***...
.*.*...
.*.S**.
.*...**
.*....*
.******
UULLDDDDDRRRRRUULULL
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |