最高的金字塔

时间:2018-11-22 10:18:54

标签: algorithm logic 2d


我已经尝试了一切,但是如果没有蛮力,我仍然无法解决这个问题:

我得到了N个具有已知高度和宽度的块。我可以旋转它们(高度变为宽度,宽度变为高度),并且必须从它们构建尽可能高的金字塔(当然,我可以更改块的顺序)。 问题是您不能将宽度为X的块放在宽度小于X的块上。
编辑:
问题是,您不能将一个块放在相同宽度的块上。

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

我了解到您的问题陈述和意见,就是希望您使用width从下到上以降序构建最高的金字塔。
如果是这种情况,那么我们可以做的只是以下步骤:

  1. 仅在width上循环阻塞并交换heightwidth > height
  2. 现在,以宽度的降序对块数组进行排序,这是金字塔中从底部到顶部堆叠块的顺序。

  3. 答案是所有高度的总和。

  

注意:仅当要显示块顺序时才需要步骤-2   从金字塔的底部到顶部。