博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Monkey and Banana(基础DP)
阅读量:6265 次
发布时间:2019-06-22

本文共 2373 字,大约阅读时间需要 7 分钟。

Monkey and Banana

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 11391    Accepted Submission(s): 5958

Problem Description
A group of researchers are designing an experiment to test the IQ of a monkey. They will hang a banana at the roof of a building, and at the mean time, provide the monkey with some blocks. If the monkey is clever enough, it shall be able to reach the banana by placing one block on the top another to build a tower and climb up to get its favorite food.
The researchers have n types of blocks, and an unlimited supply of blocks of each type. Each type-i block was a rectangular solid with linear dimensions (xi, yi, zi). A block could be reoriented so that any two of its three dimensions determined the dimensions of the base and the other dimension was the height.
They want to make sure that the tallest tower possible by stacking blocks can reach the roof. The problem is that, in building a tower, one block could only be placed on top of another block as long as the two base dimensions of the upper block were both strictly smaller than the corresponding base dimensions of the lower block because there has to be some space for the monkey to step on. This meant, for example, that blocks oriented to have equal-sized bases couldn't be stacked.
Your job is to write a program that determines the height of the tallest tower the monkey can build with a given set of blocks.
 

 

Input
The input file will contain one or more test cases. The first line of each test case contains an integer n,
representing the number of different blocks in the following data set. The maximum value for n is 30.
Each of the next n lines contains three integers representing the values xi, yi and zi.
Input is terminated by a value of zero (0) for n.
 

 

Output
For each test case, print one line containing the case number (they are numbered sequentially starting from 1) and the height of the tallest possible tower in the format "Case case: maximum height = height".
 

 

Sample Input
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
昨天被一个小错误搞得半夜,今天发现一个y写成x,越来越发现粗心害死人呀。

转载于:https://www.cnblogs.com/littlepear/p/5382213.html

你可能感兴趣的文章
.NET Entity Framework入门操作
查看>>
iOS-集成微信支付和支付宝支付
查看>>
SAP
查看>>
读掘金小册组件精讲总结2
查看>>
MVC项目中怎样用JS导出EasyUI DataGrid为Excel
查看>>
制作个人开发IDE
查看>>
给架构师骂了
查看>>
ajax提交form表单资料详细汇总
查看>>
Excel——使用INDEX和SMALL实现条件筛选
查看>>
c#迭代器 转载
查看>>
JQuery与JavaScript
查看>>
Jmeter--正则表达式提取器
查看>>
设置Slider Control 控件的取值范围
查看>>
struts2 启动tomcat时报错:org.apache.catalina.core.StandardContext filterStart
查看>>
asp.net导入后台代码
查看>>
java web dev知识积累
查看>>
Flex 经纬度匹配正则表达式
查看>>
在SSIS包中使用 Checkpoint从失败处重新启动包[转]
查看>>
为什么开通博客?
查看>>
深入浅出Mybatis系列(四)---配置详解之typeAliases别名(mybatis源码篇)
查看>>