С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для Adler
80 / 85 / 19
Регистрация: 07.05.2009
Сообщений: 336

1589. Сокобан

13.05.2009, 19:45. Показов 1745. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ограничение:
времени: 5.0 секунды
памяти: 64 МБ
Описание:
Программист Стас на время отпуска устроился поработать в японскую компьютерную фирму Thinking Rabbit. Сначала идея казалась замечательной — и на халяву съездить за границу, и заработать, и набраться опыта у японских коллег. Но оказалось, что программисты без знания японского фирме не нужны, и Стаса отправили работать кем-то вроде кладовщика (по-японски его профессию называли Soko-ban).
Стас должен наводить порядок на складе, точнее, расставлять контейнеры с грузом по местам. Каждое утро Стасу дают бумажку со схемой очередного помещения и указанием, куда надо поставить контейнеры (почему-то начальству фирмы Thinking Rabbit не важно, какой именно контейнер куда поставить, главное, чтобы все контейнеры стояли только на отмеченных местах).
Однако, расставить их не так просто. Контейнеры большие и тяжелые, так что передвигать их можно, только толкая по полу, причем сил хватает лишь на один контейнер за раз. Кстати, контейнеры еще и гладкие, поэтому их можно толкать перед собой, но невозможно, например, тянуть за собой или поворачивать. Габариты помещения точно подогнаны под размеры контейнеров, поэтому Стас не может перебраться через контейнер, протиснуться между стоящими рядом контейнерами или пролезть между контейнером и стеной — он может ходить только по свободному пространству. Поэтому наведение порядка превращается в жуткую головоломку. А если решить её не удается или контейнер случайно попадает в какой-нибудь угол, из которого его не вытащить, то Стасу не позавидуешь. Дело в том, что стены склада сплошные, без выходов. Утром Стас попадает на склад через один из люков в потолке, а выйти из помещения он может только тогда, когда выполнит свою задачу. Умная система управления откроет люк для Стаса в нужном месте.
Помогите Стасу составить план перемещения контейнеров.
Исходные данные:
На входе задана схема склада — прямоугольная сетка размером n × m (3 ≤ n, m ≤ 8). Пустое место обозначется пробелом, а объекты обозначаются следующими символами:

* # — стены
* . — пустое место, куда нужно поставить контейнер (цель)
* @ — место, откуда начинает работу Стас
* + — место, откуда начинает работу Стас, если там находится одна из целей
* $ — контейнер на пустом месте
* * — контейнер на одной из целей

Гарантируется, что схема склада задана корректно, т.е. Стас не может выйти за его пределы. Количество контейнеров совпадает с количеством целей.
Результат:Выведите строку, описывающую план перемещений Стаса, при котором он расставляет контейнеры по конечным позициям. Все перемещения записываются буквами r, l, u и d (соответствующие четырем направлениям перемещений). Если при перемещении двигается контейнер, то буквы записываются в верхнем регистре (R, L, U и D соответственно). Длина строки не должна превышать 10000 символов. Можете считать, что решение всегда существует.
Примеры 1
Code
1
2
3
4
5
6
[B]исходные данные:[/B]
[color="#000088"]########
#@  $ .#
########[/COLOR]
[B]результат:[/B]
[COLOR="Green"]rrRR[/COLOR]
Примеры 2
Code
1
2
3
4
5
6
7
8
9
10
[B]исходные данные:[/B]
[COLOR="#000088"] ######
##   .#
#@  ###
#   * #
#   $ #
#     #
#######[/COLOR]
[B]результат:[/B]
[COLOR="Green"]dddrrrruLdlUUUluRR[/COLOR]
Автор задачи: Станислав Васильев и Сергей Пупырев
Источник задачи: ACM ICPC 2007–2008. NEERC. Восточный подрегион. Екатеринбург, 27 октября 2007 г.


ЗЫ: Очень интересная задачка. Кто-нибудь в курсе как её решать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.05.2009, 19:45
Ответы с готовыми решениями:

Сокобан на С++
Ребят, пишу курсовую на С++, игру Сокобан юзая Win 32 Api, может у когото есть желание помочь, или есть простенькие примеры этой игры(уж...

Сокобан, и построение дерева решений
Добрый вечер, уважаемые форумчане. Нужна помощь с лабой, которую я реально не могу самостоятельно оформить: Задание -...

Задача "Сокобан"
Ограничение времени: 5.0 секунды Ограничение памяти: 64 МБ Программист Стас на время отпуска устроился поработать в японскую...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.05.2009, 19:45
Помогаю со студенческими работами здесь

ИИ (Бот) для игры Сокобан
Подскажите как можно зделать бота для поиска пути( наименьшего пути) для прохождения уровня к примеру в игре сокобан слышал о (Поиске в...

Бот (ИИ) для игры Сокобан
Подскажите как можно зделать бота для поиска пути( наименьшего пути) для прохождения уровня к примеру в игре сокобан слышал о (Поиске в...

Курсовик-игра сокобан(грузчик)
Здравствуйте форумчане,мне был дан курсовик -написать игру *грузчик* смысл каторой заключается в том что : 1)дан грузчик это тот кем вы...

Сокобан/грузчик/ящики на PASCALABC.net
Здравствуйте, помогите пожалуйста написать самую простую программу сокобан/ящики/грузчик везде разные названия на паскале. В графАБС. Я...

Рандомные уровни для игры Сокобан
Я пишу сейчас игру Сокобан, и мне нужно, чтобы уровни генерировались случайно, но по заданным настройкам, например: Игровое поле:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru