HDU 1069 Monkey and Banana(LIS最长上升子序列)
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
Description
Input
Output
Sample Input
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 3: maximum height = 28
Case 4: maximum height = 342
题意:把给定的长方体叠加在一起,他们的长宽高可以随意交换,叠加的条件是,上面一个长方体的长和宽都比下面长方体的长
和宽短;求这些长方体能叠加的最高的高度.(其中(3,2,1)可以摆放成(3,2,1)(3,1,2)、(2,1,3)等).在前面一句话看出来点什么没??没有的话继续往下看
思路:其实就是求最长的单调递减序列。在长和宽的递减下,求最大能得出的最大高度了。
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
struct node
{
int l,w,h;
} a[111];
int dp[111];
int cmp(node a,node b)
{
if(a.l>b.l) return 1;
if(a.l==b.l&&a.w>b.w) return 1;
else return 0;
}
int main()
{
int b[3],t,n,k,sum,f=1;
while(cin>>t&&t)
{
k=0;
for(int i=0; i<t; i++)
{
cin>>b[0]>>b[1]>>b[2];
sort(b,b+3);
//记住,这道题可以这么想,长一定大于宽,不然就不叫长了,所以只要找到高的三种情况即可
a[k].l=b[2];
a[k].w=b[1];
a[k].h=b[0]; //每个长方体最小的高
k++;
a[k].l=b[2];
a[k].w=b[0];
a[k].h=b[1];//每个长方体第二高的高
k++;
a[k].l=b[1];
a[k].w=b[0];
a[k].h=b[2];//每个长方体最高的高
k++;
}
sort(a,a+k,cmp);
for(int i=0; i<k; i++)
dp[i]=a[i].h;
for(int i=k-2; i>=0; i--) //下一层
for(int j=i+1; j<k; j++) //上一层
{
if(a[i].l>a[j].l&&a[i].w>a[j].w) //长和宽都要小于上一层的
if(dp[i]<dp[j]+a[i].h) //如果找到更大的高,就要更新
dp[i]=dp[j]+a[i].h;
}
sum=dp[0];
for(int i=0; i<k; i++) if(sum<dp[i])
sum=dp[i];
printf("Case %d: maximum height = %d\n",f++,sum);
}
return 0;
}
HDU 1069 Monkey and Banana(LIS最长上升子序列)的更多相关文章
- HDU 1069 Monkey and Banana (动态规划、上升子序列最大和)
Monkey and Banana Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- HDU 1069 Monkey and Banana(DP——最大递减子序列)
题目链接: http://acm.split.hdu.edu.cn/showproblem.php?pid=1069 题意描述: 给n块砖,给出其长,宽和高 问将这n块砖,怎样叠放使得满足以下条件使得 ...
- HDU 1069 Monkey and Banana / ZOJ 1093 Monkey and Banana (最长路径)
HDU 1069 Monkey and Banana / ZOJ 1093 Monkey and Banana (最长路径) Description A group of researchers ar ...
- HDU 1069 Monkey and Banana dp 题解
HDU 1069 Monkey and Banana 纵有疾风起 题目大意 一堆科学家研究猩猩的智商,给他M种长方体,每种N个.然后,将一个香蕉挂在屋顶,让猩猩通过 叠长方体来够到香蕉. 现在给你M种 ...
- HDU 1069 Monkey and Banana(转换成LIS,做法很值得学习)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1069 Monkey and Banana Time Limit: 2000/1000 MS (Java ...
- hdu 5256 序列变换(LIS最长上升子序列)
Problem Description 我们有一个数列A1,A2...An,你现在要求修改数量最少的元素,使得这个数列严格递增.其中无论是修改前还是修改后,每个元素都必须是整数. 请输出最少需要修改多 ...
- HDU 1069 Monkey and Banana(二维偏序LIS的应用)
---恢复内容开始--- Monkey and Banana Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ...
- hdu(1069)——Monkey and Banana(LIS变形)
题意: 如今给你n个石块,然后它由坐标来表示(x,y,z).可是它能够有不同的方法,也就是说它的三个坐标能够轮换着来的. 石块的数量不限,可是每次都必须保持上底面的长和宽严格递减,然后问你用这些石块所 ...
- HDU 1069—— Monkey and Banana——————【dp】
Monkey and Banana Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u S ...
- HDU 1069 Monkey and Banana (DP)
Monkey and Banana Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u S ...
随机推荐
- zy 送画
问题描述 话说在军训的倒数第二天,zy终于下定决心要将画了 10天之久的画像送给他心怡的法学院mm.但是,他不敢自己一个人去,倒霉的 kk 只能和他一起去了.不过,为了表现的有诚意,kk和zy不能走在 ...
- css三角形绘制
三角形演变: 1.将一个块元素的宽.高都设置为0,再设置边框样式,得如下效果图(绿色部分): 样式: {;;border: 35px solid #7de87d;} 通过此样式得到的是一个正方形. 2 ...
- 还原virtual函数的本质-----C++
当你每次看到C++类中声明一个virtual函数,特别是看到了一个virtual的虚构函数.你知道它的意思吗?你肯定会毫不犹豫的回答:不就是多态么...在运行时确定具体的行为么...完全正确,但这里我 ...
- linux 命令c语言代码实现
自己学习<APUE>时写的linux下一些命令(大概40个左右)实现,仅当学习使用,这些命令包含cat cp echo head ls paste rmdir tail umask who ...
- shell之“>/dev/null 2>&1” 详解(转)
今天在自己的一个技术群中又被问道了这么一个问题,于是又通俗的解释了一下,做个记录,大家看看解释是否清楚! shell中可能经常能看到:>/dev/null 2>&1 命令的结果可以 ...
- Java——(三)Collection之Set集合、HashSet类
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.Set集合 Set集合不允许包含相同的元素,如果试图把两个相同的元素加入同一个Set集合中, ...
- Springmvc中@RequestParam传值中文乱码解决方案(转)
@RequestMapping(value={"/list"},method=RequestMethod.GET) @ResponseBody public DeviceList ...
- Python - BeautifulSoup 安装
BeautifulSoup 3.x 1. 下载 BeautifulSoup. [huey@huey-K42JE python]$ wget http://www.crummy.com/software ...
- zabbix 基于JMX的Tomcat监控
zabbix 基于JMX的Tomcat监控 一.环境 ubuntu14.04 LTS Java 1.7.0 zabbix 2.4.5 二.安装配置 1.安装JavaGateway 在ubuntu14. ...
- JAVA DATE解析(时间戳解析为固定格式)
public class SimpleDateFormat extends DateFormat SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类. 它允许格式化 (d ...