башня ящиков (укладка кубов) - PullRequest
2 голосов
/ 25 ноября 2010

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

Вы можете построить стабильную башню со строительными кубами, не помещая большие кубы в меньшие, и если вы не кладете более тяжелые кубы в более легкие. Создайте программу, которая даст вам максимально возможную башню с n числом кубов.
Входной сигнал:
В первой строке in.txt указано количество кубов n (1 = Выход:
Вы должны записать максимально возможное число m стабильной башни в out.txt. во втором ряду вы должны написать порядковый номер башни m снизу вверх. под высотой башни мы подразумеваем количество всех сторон длины куба (не количество кубов). если есть более одного решения, вы можете дать все, что захотите
пример для ввода и вывода:
вход:
5 * +1010 * 10 3
20 5
15 6
15 1
10 2
и вывод:
3
2 1 5
Вот ограничения по программе. Ограничение времени: 0,2 сек. Ограничение памяти: 16 МБ

Надеюсь, вы поможете мне решить эту проблему. спасибо за помощь

1 Ответ

5 голосов
/ 25 ноября 2010

Отношение «блок A может быть помещено поверх блока B » определяет частичный порядок для блоков.Вы можете использовать алгоритм Кана (он же "топологическая сортировка"), чтобы превратить его в общий порядок, который затем можно пройти в глубину до , чтобы найти самый длинный путь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...