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

答案为maxdp[i],1≤i≤n
小明有若干大小不同的礼盒。每个礼盒可以用三个正整数来描述,分别是长、宽和高。小明想要把这些礼盒从下到上叠成一堆。叠放规则是:对于任意相邻的两个礼盒,位于下方的礼盒在长、宽、高三个维度上都必须严格大于位于上方的礼盒,任何一个维度相等都不允许。
请帮助小明计算在满足规则的前提下,可以堆出的最大总高度。
约束条件:
礼盒数量 N 不超过 1000;每个礼盒的长、宽、高均为 1 到 10 之间的整数。
第一行包含一个整数 N,表示礼盒的数量。
开通会员即可查看完整视频题解: 1.题目讲解 2.思路分析 3.逐行代码手写
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册