问题4038--积木游戏4038: 积木游戏
时间限制: 1 Sec 内存限制: 512 MB
提交: 0 解决: 0
[提交] [状态] [讨论版] [命题人:]题目描述
一种积木游戏,游戏者有N块编号依次为1,2,...,N的长方体积木。第i块积木过同一顶点三条边的长度为ai,bi,ci,
游戏规则如下:
1.从N块积木中选出若干块,并将它们摞成M(1<=M<=N)根柱子, 编号依次为1,2,...,M,要求第K 根柱子的任意一块积木的编号都必须大于第K-1根柱子任意一块积木的编号(2<=K<=M)。
2.对于每一根柱子,一定要满足下面三个条件:
1)除最顶上的一块积木外,任意一块积木的上表面同且仅同另一块积木的下表面接触;
2)对于任意两块上下表面相接触的积木,若m,n是下面一块积木接触面的两条边(m≥n),x,y是上面一块积木接触面的两条边(x≥y),则一定要满足m≥x,n≥y;
3)下面的积木的编号要小于上面的积木的编号。
请你编一程序,寻找一种游戏方案,使得所能摞成的M 根柱子的高度之和最大。
输入
文件的第一行是两个正整数N和M(1≤M≤N ≤100),分别表示积木总数和要求摞成的柱子数。这两个数之间用一个空格符隔开。接下来的N行依次是编号从1到N的 N个积木的尺寸,每行有三个1至500之间的整数,分别表示该积木三条边的长度。 同一行相邻两个数之间用一个空格符隔开。
输出
文件只有一行,是一个整数,表示所求得的游戏方案中M根柱子的高度之和。
样例输入
4 2
10 5 5
8 7 7
2 2 2
6 6 6
样例输出
24
来源/分类
[提交] [状态]