HDU1069 - Monkey and Banana【dp】
题目大意
给定箱子种类数量n,及对应长宽高,每个箱子数量无限,求其能叠起来的最大高度是多少(上面箱子的长宽严格小于下面箱子)
思路
首先由于每种箱子有无穷个,而不仅可以横着放,还可以竖着放,歪着放。。。长宽高可以有6种形态,用结构体数组存储起来,然后按照长排序,然后就变成了判断是否满足条件,从满足条件中找最大值。
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
struct node
{
int l,w,h;
}a[1005];
int dp[1005];
bool cmp(node x,node y)
{
if(x.l==y.l)
return x.w<y.w;
return x.l<y.l;
}
int main()
{
int n;
int c,k,g;
while(~scanf("%d",&n) && n)
{
int temp=0,countt=0;
for(int i=0;i<n;++i)
{
scanf("%d%d%d",&c,&k,&g);
a[temp].h=c,a[temp].l=k;a[temp++].w=g;
a[temp].h=c,a[temp].l=g;a[temp++].w=k;
a[temp].h=k,a[temp].l=c;a[temp++].w=g;
a[temp].h=k,a[temp].l=g;a[temp++].w=c;
a[temp].h=g,a[temp].l=k;a[temp++].w=c;
a[temp].h=g,a[temp].l=c;a[temp++].w=k;
}
sort(a,a+temp,cmp);
dp[0]=a[0].h;
int maxn=0;
for(int i=1;i<temp;++i)
{
maxn=0;
for(int j=0;j<i;++j)
if(a[j].l<a[i].l && a[j].w<a[i].w)
maxn=max(maxn,dp[j]);
dp[i]=a[i].h+maxn;
}
maxn=0;
for(int i=0;i<temp;++i)
if(dp[i]>maxn)
maxn=dp[i];
printf("Case %d: maximum height = %d\n",++countt,maxn);
}
}
HDU1069 - Monkey and Banana【dp】的更多相关文章
- 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 【动态规划】
题目 题意:研究人员要测试猴子的IQ,将香蕉挂到一定高度,给猴子一些不同大小的箱子,箱子数量不限,让猩猩通过叠长方体来够到香蕉. 现在给你N种长方体, 要求:位于上面的长方体的长和宽 要小于 下面 ...
- HDU1069 Monkey and Banana(dp)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1069 题意:给定n种类型的长方体,每个类型长方体无数个,要求长方体叠放在一起,且上面的长方体接触面积要小于 ...
- HDU1069 Monkey and Banana
HDU1069 Monkey and Banana 题目大意 给定 n 种盒子, 每种盒子无限多个, 需要叠起来, 在上面的盒子的长和宽必须严格小于下面盒子的长和宽, 求最高的高度. 思路 对于每个方 ...
- Kattis - honey【DP】
Kattis - honey[DP] 题意 有一只蜜蜂,在它的蜂房当中,蜂房是正六边形的,然后它要出去,但是它只能走N步,第N步的时候要回到起点,给出N, 求方案总数 思路 用DP 因为N == 14 ...
- HDOJ 1423 Greatest Common Increasing Subsequence 【DP】【最长公共上升子序列】
HDOJ 1423 Greatest Common Increasing Subsequence [DP][最长公共上升子序列] Time Limit: 2000/1000 MS (Java/Othe ...
- HDOJ 1501 Zipper 【DP】【DFS+剪枝】
HDOJ 1501 Zipper [DP][DFS+剪枝] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Ja ...
- HDOJ 1257 最少拦截系统 【DP】
HDOJ 1257 最少拦截系统 [DP] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- HDOJ 1159 Common Subsequence【DP】
HDOJ 1159 Common Subsequence[DP] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ...
随机推荐
- VMware镜像文件下载
VMware镜像文件下载 http://blog.sina.com.cn/s/blog_517c21c00102x5ja.html 貌似Centos 6不能下载啊: 其他的没有测试:
- 【树状数组】POJ 2155 Matrix
附一篇经典翻译,学习 树状数组 http://www.hawstein.com/posts/binary-indexed-trees.html /** * @author johnsondu * @ ...
- jquery.validate.js插件的使用方法
近期做项目.须要用到 jQuery.validate.js插件,于是记录一下工作中的一些经验,以便日后学习. [样例例如以下] 1.前台页面 <form id="form1" ...
- 上机题目(0基础)- 数据库事务(Java)
/* * 文件名称:JDBCTestCase.java * 版权:Copyright 2006-2011 Huawei Tech. Co. Ltd. All Rights Reserved. * 描写 ...
- iOS-UIWebview比例缩放
你在使用UIWebview显示网页时.可能会注意到.UIWebView所支持的缩放倍率是非常有限的.而在Safari自己所支持的缩放系数比UIWebview要大得多. 本文解释了怎样加大UIWebVi ...
- Android TextView 设置行间距
Android系统中TextView默认显示中文时会比较紧凑,不是很美观.为了让每行保持一定的行间距,可以设置属性android:lineSpacingExtra或android:lineSpacin ...
- Java 8 实战 P2 Functional-style data processing
目录 Chapter 4. Introducing streams Chapter 5. Working with streams Chapter 6. Collecting data with st ...
- E20170907-ts
flash vt. 使闪光,使闪烁; 拍出,发出(电报等); 〈口〉炫耀; adj. 闪光的,闪耀的,一闪而过的; 浮华的; 庞大的; n. 闪光; 闪光灯下摄 ...
- 【Codeforces】Codeforces Round #374 (Div. 2) -- C. Journey (DP)
C. Journey time limit per test3 seconds memory limit per test256 megabytes inputstandard input outpu ...
- HBase的集群搭建(1、3、5节点都适用)
见 5 hbase-shell + hbase的java api