HDU 1069 Monkey and Banana 动态规划
这道题不能单纯的比面积,是长宽都要小于下面的木块才可以放,下按照x排序,之后在比较x,y,然后就是求最大递减序列,在输入的时候先将d数组排序,因为一个木块有六种放的方法,如果不排序,把六种情况都列出来也可以。排序之后呢,相当于规定在同等高度的木块都朝着x轴短的这面放,所以就一共只有三种可能了
在更新的时候一定记住每一轮要更新dp[i],而不是更新dp[j]
例如 :for(int i=0;i<cou;i++){
for(int j=i+1;j<cou;j++){
if(box[i].x>box[j].x && box[i].y>box[j].y && dp[j]<(dp[i]+box[j].z)){
dp[j]=dp[i]+box[j].z;
}
这是错误的写法
#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
struct node{int x,y,z;
}box[200];
int dp[200];
bool cmp(node a,node b){if(a.x>b.x)return true;if(a.x==b.x&&a.y>b.y)return true;return false;
}
int main(){
// freopen("in.txt","r",stdin);int n,d[3],t=1;while(~scanf("%d",&n),n!=0){int cou=0;for(int i=0;i<n;i++){scanf("%d%d%d",&d[0],&d[1],&d[2]);sort(d,d+3);box[cou].x=d[1];box[cou].y=d[2];box[cou++].z=d[0];box[cou].x=d[0];box[cou].y=d[2];box[cou++].z=d[1];box[cou].x=d[0];box[cou].y=d[1];box[cou++].z=d[2];}sort(box,box+cou,cmp);for(int i=0;i<cou;i++){dp[i]=box[i].z;}for(int i=1;i<cou;i++)
<span style="white-space:pre"> </span>for(int j=0;j<i;j++){
<span style="white-space:pre"> </span>if(box[i].x<box[j].x && box[i].y<box[j].y && dp[i]<(dp[j]+box[i].z)){
<span style="white-space:pre"> </span>dp[i]=dp[j]+box[i].z;int min=0;for(int i=0;i<cou;i++){if(dp[i]>min)min=dp[i];}printf("Case %d: maximum height = %d\n",t++,min);}
}
HDU 1069 Monkey and Banana 动态规划相关推荐
- HDU 1069 Monkey and Banana 最长上升子序列进阶(动态规划)
HDU 1069(动态规划) Monkey and Banana Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ...
- HDU 1069 Monkey and Banana(简单图解,经典DP,最大上升子序列变形)
题目链接 今天做的第二题,感觉比较经典,详细记录一下吧! Monkey and Banana Time Limit: 2000/1000 MS (Java/Others) Memory Limit: ...
- hdu 1069 Monkey and Banana 【动态规划】
题目 题意:研究人员要测试猴子的IQ,将香蕉挂到一定高度,给猴子一些不同大小的箱子,箱子数量不限,让猩猩通过叠长方体来够到香蕉. 现在给你N种长方体, 要求:位于上面的长方体的长和宽 要小于 下面 ...
- 三维最长上升子序列问题——HDU 1069 Monkey and Banana
题目: A group of researchers are designing an experiment to test the IQ of a monkey. They will hang a ...
- hdu 1069 Monkey and Banana (LIS)
Problem - 1069 随便找到的一道题目. 题意是给出一些的长方体,长方体可以用任意次数,可以任意翻转.如果一个长方体可以叠在另一个长方体上,条件是这个长方体的长和宽严格小于另一个长方体的长和 ...
- hdu(1069)——Monkey and Banana(LIS变形)
题意: 如今给你n个石块,然后它由坐标来表示(x,y,z).可是它能够有不同的方法,也就是说它的三个坐标能够轮换着来的. 石块的数量不限,可是每次都必须保持上底面的长和宽严格递减,然后问你用这些石块所 ...
- HDU 1069 Monkey and Banana
传送门 #include<iostream> #include<algorithm> #include<map> #include<set> #incl ...
- hdu 1069 Monkey and Banana dp
题意:给你n种个长方体,告诉你每种长方体的长,宽,高,并且每种长方体个数不限 问:把它们堆起来的最大高度 限制条件:上面一个长方体a的底面积,必须比它下面一个长方体b的底面积大,而且,a的底面的长宽也 ...
- HDUOJ 1069 Monkey and Banana
HDUOJ 1069 Monkey and Banana 题目链接 Problem Description A group of researchers are designing an experi ...
- HDOJ 1069 Monkey and Banana
1:每一组X,Y,Z对应3个立方体 2:按面积从小到大DP Monkey and Banana Time Limit: 2000/1000 MS (Java/Others) Memory Lim ...
最新文章
- 用研究新范式破解生命科学难题
- 下列不是python对文件的读操作方法是-小猿圈python之python期末考试测试题(一)...
- 【计算机网络】传输层 : TCP 连接管理 ( TCP 连接建立 | 三次握手 | TCP 连接释放 | 四次挥手 )
- apache2和jk和tomcat安装笔记-ubuntu
- Linux安装jellyfin硬件加速,proxmoxVE LXC 安装设置 Jellyfin 多媒体家庭影院
- 世界手机号码格式_世界上手机号码最长的国家是中国,最短的是哪个国家?
- Python实现矩阵所有元素之和及某一列之和和某一行之和??
- Spring IOC源码笔记(一)
- rgb活体rgb对比rgb
- eova(JFinal)项目一键式部署方法
- 流媒体协议RTP、RTCP、H264详解
- 深度技术官网linux,深度系统
- 云计算与网格计算的区别
- 用R语言计算班级各门课程的加权平均分
- python中数字加引号和不加引号的区别_高考完小白自学Python,不太懂print语句中一个加引号,一个不加?...
- 麻瓜编程python爬虫微专业_网易微专业Python Web开发工程师课程下载
- 产品项目团队都有哪些角色概览
- OpenStack技术峰会前瞻,含全球前五用户带来的顶级实践分享
- 解决幂等性问题方法大全
- 百度商业系统大规模微服务分布式监控实践
热门文章
- 2016noip蚯蚓《单调队列》
- Maven - 安装 配置
- 调用未知DLL中的导出函数[转]
- 【实例】原生 js 实现全屏滚动效果
- KEIL中遇到WARNING: MULTIPLE CALL TO SEGMENT的解决方法
- 【需求】如何编写高质量“软件需求说明书”(转)
- [转载]安全设置 IIS 中的权限
- Sound Studio for Mac - 音频编辑处理工具
- Typinator for mac(打字员)附注册码支持m1
- Mac 入门教程:如何更改你的 Mac 设备名称