![]() |
Модераторы: Alx, Fixin |
![]() ![]() ![]() |
|
MItornaDOS |
|
||||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 1.8.2007 Где: UA Репутация: нет Всего: нет |
Вот такая вот задачка ![]() Собсно хотелось бы услышать способы подхода к задаче, а не тупо решение Я хочу черпнуть с неё знаний Добавлено через 7 минут и 25 секунд Забыл примеры ещё snake.dat
snake.sol
snake.dat
snake.sol
|
||||||||||
|
|||||||||||
maxdiver |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 29.1.2008 Где: Саратов Репутация: 2 Всего: 18 |
Ну построим из пустых клеток граф, рёбра в котором будем проводить между соседними клетками. В этом графе нам требуется найти простой незамкнутый путь длины L. Ясно, что эта задача эквивалентна задача о нахождении длиннейшего пути в неориентированном графе, которая для произвольных является NP-полной. Можно предположить, что и в случае нашего графа эта задача будет NP-полной (ограничения на задачу 20 подсказывают это).
Поэтому я бы написал простой перебор - перебираем начальную клетку, и пытаемся строить из неё путь длины L. В таком виде чистая асимптотика будет порядка 400 * 3^20, но, конечно, обычно переборы с отсечениями отрабатывают быстрее. В качестве дополнительного полезного отсечения я бы написал проверку, что из выбранной в качестве стартовой клетки достижимы хотя бы L-1 вершина. |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Интересные и занимательные задачи по программированию | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |