hdu-1069(dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1069
题意:一群猴子,给出n块砖的长x宽y高z,用这些砖拼起的高度最高是多少,
要求底下的砖的长宽都要大于上面那块。堆出高度最高的猴子最聪明。现在问最多能达到多高。
思路:从n块砖中找出x块砖并满足长宽要求使高度最高,可以用动态规划来做。
先按照砖的x,y升序排序,类似最长不下降子序列。
状态转移方程:dp[i]=h[i]+max(dp[0]……dp[i-1]);
参考文章:https://blog.csdn.net/lttree/article/details/26606947
#include<iostream>
#include<cstdio>
#include<vector>
#include<algorithm>
#include<cstring>
using namespace std;
struct Node{
int l,w,h;
};
vector <Node> vc;
int dp[];
bool cmp(Node a,Node b)
{
if(a.l!=b.l) return a.l<b.l;
else return a.w<b.w;
}
int main(void)
{
int n,x,y,z,pt=;
Node tmp;
while(~scanf("%d",&n)&&n)
{
vc.clear();
memset(dp,,sizeof(dp));
while(n--)
{
scanf("%d %d %d",&x,&y,&z);
tmp.l=x;tmp.w=y;tmp.h=z;vc.push_back(tmp);
tmp.l=x;tmp.w=z;tmp.h=y;vc.push_back(tmp);
tmp.l=y;tmp.w=x;tmp.h=z;vc.push_back(tmp);
tmp.l=y;tmp.w=z;tmp.h=x;vc.push_back(tmp);
tmp.l=z;tmp.w=y;tmp.h=x;vc.push_back(tmp);
tmp.l=z;tmp.w=x;tmp.h=y;vc.push_back(tmp);
}
sort(vc.begin(),vc.end(),cmp);
int mx,j,i,l=vc.size();
dp[]=vc[].h;
for(i=;i<l;i++)
{
mx=;
for(j=;j<i;j++)
{
if(vc[j].l<vc[i].l&&vc[j].w<vc[i].w)
mx=mx>dp[j]?mx:dp[j];
}
dp[i]=vc[i].h+mx;
}
mx=;
for(i=;i<l;i++)
{
mx=mx>dp[i]?mx:dp[i];
}
printf("Case %d: maximum height = %d\n",pt++,mx);
}
return ;
}
hdu-1069(dp)的更多相关文章
- hdu 5534(dp)
Input The first line contains an integer T indicating the total number of test cases. Each test case ...
- HDU 5800 (DP)
Problem To My Girlfriend (HDU 5800) 题目大意 给定一个由n个元素组成的序列,和s (n<=1000,s<=1000) 求 : f (i,j,k,l, ...
- hdu 5464(dp)
题意: 给你n个数,要求选一些数(可以不选),把它们加起来,使得和恰好是p的倍数(0也是p的倍数),求方案数. - - 心好痛,又没想到动规 #include <stdio.h> #inc ...
- HDU 2571(dp)题解
命运 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- Find a path HDU - 5492 (dp)
Find a path Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- 饭卡 HDU - 2546(dp)
电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够).所以大家 ...
- HDU 4489(DP)
http://acm.hdu.edu.cn/showproblem.php?pid=4489 解题思路这里已经说的很清楚了: http://blog.csdn.net/bossup/article/d ...
- hdu 1024(dp)
传送门:Max Sum Plus Plus 题意:从n个数中选出m段不相交的连续子段,求这个和最大. 分析:经典dp,dp[i][j][0]表示不取第i个数且前i个数分成j段达到的最优值,dp[i][ ...
- AreYouBusy HDU - 3535 (dp)
AreYouBusy Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- HDU 2577(DP)
题意:要求一个字符串输入,按键盘的最少次数.有Caps Lock和Shift两种转换大小写输入的方式 思路:用dpa与dpb数组分别记录Caps Lock的开关状态,dpa表示不开,dpb表示开 代码 ...
随机推荐
- bootstrap做的导航
顶部导航:nav-tabs 左边导航:nav-list 响应式布局:div嵌套 ~ container.row.ol-lg-X 效果: 源码: <!DOCTYPE html> <ht ...
- Apache配置本地域名
打开Apache的安装目录,找到httpd.conf文件,分别去掉下面两行文字前面的#号. LoadModule vhost_alias_module modules/mod_vhost_alias. ...
- 转载:MySQL和Redis 数据同步解决方案整理
from: http://blog.csdn.net/langzi7758521/article/details/52611910 最近在做一个Redis箱格信息数据同步到数据库Mysql的功能. 自 ...
- 代码报错记录-MAVEN-2
报错: 编译错误,程序包org.junit找不到 原因: 这个是父项目,报错是在子项目中,子项目使用了父项目的junit包,由于scope是test,导致子项目在编译时找不到junit, 修改: 将父 ...
- python-淘宝信息定向爬取
S是类似产品页数 bcoffset直流偏移. 有人在将偏移量:http://www.cnblogs.com/defineconst/p/6185396.html item.taobao.com/it ...
- Redis进阶实践之一VMWare Pro虚拟机安装和Linux系统的安装
一.引言 设计模式写完了,相当于重新学了一遍,每次学习都会有不同的感受,对设计模式的理解又加深了,理解的更加透彻了.还差一篇关于设计模式的总结的文章了,写完这篇总结性的文章,设计模式的文章就暂时要告一 ...
- 3.3 JSP内置对象概述
1.request 1.1 request获取页面传来的参数,参数通过浏览器网址和后面添加?的方式传达. 传参:”show.jsp?id=001” 获取参数:request.getParameter( ...
- 4、注解反射生成SQL语句
.任务说明 ①有一张用户表,字段包括:用户ID.用户名.昵称.年龄.性别.所在城市.邮箱.手机号: ②使用java注解来对用户表的每个字段或字段的组合条件进行动态生成S ...
- Zookeeper 注册中心
一.Zookeeper的介绍 Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用 ...
- mysql 导出sql结果成csv文件
mysql -uroot -p -e "use database;sql语句:" > a.csv 举例: mysql -uroot -p -e "use main; ...