应该是个算法的问题吧?

时间:2022-10-26 11:00:41
有N种方块,而且每种方块的提供是无限制的。每种方块都是长方体,有三个边长(xi,yi,zi)。方块可以被重新定位,因此它的三个边长中的任何两个可以决定一个底面,且另一个边长就是高了。一块方块只能被放在另一块方块上面,而且上面一块的两边长比下面一块的相应的两边长都要小。
  每个实例的第一行包括一个整数n,表示不同方块的数量。n的最大值是30。接下来的n行中的每一行包括三个整数分别代表xi,yi,zi的值。n为0时输入结束。
  每一个实例中,打印一行,包括这个例子的number(它们是从1开始递增的)并且求出最大可能的高度,用如下形式:“Case case:maximum height = height"
1
10 20 30
2
6 8 10
5 5 5
7
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
7 7 7
5
31 41 59
26 53 58
97 93 23
84 62 64
33 83 27
0                                                                                                     
Sample Output
Case 1: maximum height = 40
Case 2: maximum height = 21
Case 3: maximum height = 28
Case 4: maximum height = 342

5 个解决方案

#1


例子中第一行为方块的种类,这一种方块有很多个。
如第一个例子:10*20和20*30 高的最大就是40。

#2


动态规划

事实上当初偶是用广度优先做的,也过了

#3


我学得比较浅,请问,广度优先是怎么回事呀?是用树,还是图?

#4


动态规划

这题用一维数组。

#5


源代码在这里:
http://acm.zju.edu.cn/forum/viewtopic.php?t=1012&highlight=1093

#1


例子中第一行为方块的种类,这一种方块有很多个。
如第一个例子:10*20和20*30 高的最大就是40。

#2


动态规划

事实上当初偶是用广度优先做的,也过了

#3


我学得比较浅,请问,广度优先是怎么回事呀?是用树,还是图?

#4


动态规划

这题用一维数组。

#5


源代码在这里:
http://acm.zju.edu.cn/forum/viewtopic.php?t=1012&highlight=1093