Олимпиады по информатике (ХМАО - Югра)

   
 
Югорский НИИ ИТ, Югорский ФМЛ
Логин:   Пароль:    
 
   
 
Новости
О проекте
Регистрация
Гостевая книга
Форум
Архив задач
Состояние системы
Олимпиады
Работа в системе
Рейтинг
Новичкам
Методическое пособие
Дистанционное обучение
Дистрибутивы
Ссылки

HotLog

Лабиринт

(Время: 1 сек. Память: 16 Мб Сложность: 47%)

Для решения этой задачи следует применить волновой алгоритм (поиск в ширину). Для хранения информации о лабиринте удобно использовать 3х-мерный массив, который сразу следует заполнить элементами согласно входным данным. Далее, следует пометить те ячейки, в которые принц из начальной точки может попасть за один ход, далее помечаются ячейки, в которые принц попадет ровно за 2 хода, это достигается перебором ранее помеченных одним ходом принца ячеек и т.д.: на k-м шаге помечаются ячейки, в которые принц попадет за k шагов путем перебора предыдущих ячеек с расстоянием k-1. Процесс продолжается до тех пор, пока на некотором шаге мы не достигнем принцессы, в момент достижения в качестве ответа следует вывести значение 5*k.

Для хранения координат ячеек на предыдущем шаге можно использовать как стек, так и очередь. Не стоит полностью пробегать по всему 3х-мерному массиву, выискивая помеченные ячейки шагом k-1, чтобы сделать пометку в k шагов, такое решение может не пройти по времени в силу данных ограничений. Поиск в глубину здесь еще более неразумен.


[Все попытки] [Задача]


 
     
Югорский НИИ ИТ, Югорский ФМЛ