Максимально возможная пирамида - PullRequest
0 голосов
/ 22 ноября 2018

Я попробовал все, но я все еще не могу решить эту проблему без грубой силы:Я получаю N блоков с известной высотой и шириной.Я могу вращать их (высота становится шириной, а ширина становится высотой), и я должен построить из них самую высокую пирамиду (конечно, я могу изменить порядок блоков).Проблема в том, что вы не можете поместить блок шириной X в блок шириной меньше X. EDIT: Проблема в том, что вы не можете поместить блок в блок одинаковой ширины.Есть идеи?

1 Ответ

0 голосов
/ 22 ноября 2018

Что я понимаю, прочитав вашу формулировку проблемы и комментарии, так это то, что вы хотите построить самую высокую пирамиду с width снизу вверх в порядке убывания.
Если это так, то мы можем просто сделать следующеешаги:

  1. Цикл по блокам и поменяйте местами width и height только если width > height.
  2. Теперь сортируйте массив блоков в порядке убывания шириныэто порядок, используемый для укладки блоков снизу вверх в пирамиде.

  3. Ответ - суммирование всех высот.

Примечание: шаг -2 необходим, только если вы хотите отобразить порядок блоков снизу вверх в пирамиде.

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