将所有盒子按照长、宽、高的三个优先级进行从小到大的排序,那么后面的盒子一定不可能放在前面盒子的上面。所以我们排序之后,选择的顺序就已经是定死的从左往右选择了。那么可以使用动态规划进行求解。
定义dp[i]表示放上第i个盒子所能达到的最大高度,则有

答案为maxdp[i],1≤i≤n
圣诞节来临,小塔妈妈备下不少圣诞礼盒,这些礼盒体积并不一样,小塔正做堆盒子游戏,妈妈让他想想怎样叠放才能让总高度尽量大,任意一只礼盒都用长、宽、高三个量刻画尺寸,叠放时位于下方的那只盒子,其长、宽、高三个量都得严格超过上方盒子,相等也不行。请协助小塔叠出一摞尽可能高的礼盒,该高度等于被选中各礼盒高度逐项相加的结果。
首行给出礼盒总数M,
随后连续M行,一行三整数对应一只礼盒的长、宽、高。
开通会员即可查看完整视频题解: 1.题目讲解 2.思路分析 3.逐行代码手写
© CodeFun2000 · 使用条款
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册