链接:http://acm.hdu.edu.cn/showproblem.php?pid=1069

题意:给定n种类型的长方体,每个类型长方体无数个,要求长方体叠放在一起,且上面的长方体接触面积要小于下面,长宽也小于下面的长方体,求最高能叠放多高?

思路:首先每个长方体有三种情况可以作为底部,那么一共是3*n种类型的长方体,首先按长宽的大小排序,然后dp。dp[i]表示以第i块长方体为顶的最大高度,那么转移方程就是dp[i] = max(dp[i],dp[j] +  g[i]. h),形似一个LIS的dp,枚举 j 即可

AC代码:

 #include<iostream>
#include<vector>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<queue>
#include<cstdio>
#include<unordered_map>
#define inf 0x3f3f3f3f
using namespace std;
typedef long long ll;
const int maxn = ;
int dp[maxn];
struct node{
int x,y,z;
}g[maxn];//设z为高度 ,x,y分别为长和宽
bool cmp(node a,node b){
if(a.x == b.x ) return a.y > b.y ;
return a.x > b.x ;
}
int m,n;
int main(){
int cnt = ;
while(scanf("%d",&n)){
if(n == ) break;
memset(dp,,sizeof(dp));
for(int i = ;i<=*n;i+=){
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
g[i].x = x<y? x:y;
g[i].y = y>x? y:x;
g[i].z = z;
g[i+].x = x<z? x:z;
g[i+].y = z>x? z:x;
g[i+].z = y;
g[i+].x = y<z? y:z;
g[i+].y = z>y? z:y;
g[i+].z = x;
}
sort(g+,g++*n,cmp);
for(int i = ;i<=*n;i++) dp[i] = g[i].z ;
int ans = dp[];
for(int i = ;i<=*n;i++){
for(int j = ;j<i;j++){
if(g[j].x > g[i].x && g[j].y > g[i].y ){
dp[i] = max(dp[i],dp[j]+g[i].z );//形似一个LIS的dp
ans = max(ans,dp[i]);
}
}
}
printf("Case %d: maximum height = %d\n",cnt,ans);
cnt++;
}
return ;
}

HDU1069 Monkey and Banana(dp)的更多相关文章

  1. HDU 1069:Monkey and Banana(DP)

    Monkey and Banana Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  2. HDU 1069 Monkey and Banana (dp)

    题目链接 Problem Description A group of researchers are designing an experiment to test the IQ of a monk ...

  3. HDU 1069 Monkey and Banana ——(DP)

    简单DP. 题意:给出若干种长方体,如果摆放时一个长方体的长和宽小于另一个的长宽,那么它可以放在另一个的上面,问最高能放多少高度.每种长方体的个数都是无限的. 做法:因为每种个数都是无限,那么每种按照 ...

  4. ZOJ 1093 Monkey and Banana (LIS)解题报告

    ZOJ  1093   Monkey and Banana  (LIS)解题报告 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid= ...

  5. HDU 1069 Monkey and Banana(动态规划)

    Monkey and Banana Problem Description A group of researchers are designing an experiment to test the ...

  6. Monkey and Banana(dp,求最长的下降子序列)

    A group of researchers are designing an experiment to test the IQ of a monkey. They will hang a bana ...

  7. HDU 1069 Monkey and Banana(DP——最大递减子序列)

    题目链接: http://acm.split.hdu.edu.cn/showproblem.php?pid=1069 题意描述: 给n块砖,给出其长,宽和高 问将这n块砖,怎样叠放使得满足以下条件使得 ...

  8. 随手练——ZOJ 1093 Monkey and Banana(动态规划)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=93 一堆科学家研究猩猩的智商,给他M种长方体,每种N个. 然后,将一个 ...

  9. hdoj1069 Monkey and Banana(DP--LIS)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1069 思路: 由题意,显然一种block可能有6种形式,且一种形式最多使用一次,因此最多有30×6=1 ...

随机推荐

  1. Luogu2040 | 打开所有的灯 (广搜+状压)

    题目背景 pmshz在玩一个益(ruo)智(zhi)的小游戏,目的是打开九盏灯所有的灯,这样的游戏难倒了pmshz... 题目描述 这个灯很奇(fan)怪(ren),点一下就会将这个灯和其周围四盏灯的 ...

  2. fatal error LNK1169: one or more multiply defined symbols found

    在 Project/Setting/Link/General中的 Project Options: 加入 /FORCE:MULTIPLE即可")可以解决报错问题,但是这些问题全部变成了war ...

  3. 双向队列 SDUT 1466

    题目描述      想想双向链表……双向队列的定义差不多,也就是说一个队列的队尾同时也是队首:两头都可以做出队,入队的操作.现在给你一系列的操作,请输出最后队列的状态:命令格式:LIN X  X表示一 ...

  4. 使用resultMap实现高级结果映射

    使用resultMap实现高级结果映射 resultMap的属性: 1.属性 id:resultMap的唯一标识.type:resulMap的映射结果类型(一般为Java实体类).2.子节点 id:一 ...

  5. JS 数组常见操作汇总,数组去重、降维、排序、多数组合并实现思路整理

    壹 ❀ 引 JavaScript开发中数组加工极为常见,其次在面试中被问及的概率也特别高,一直想整理一篇关于数组常见操作的文章,本文也算了却心愿了. 说在前面,文中的实现并非最佳,实现虽然有很多种,但 ...

  6. CGI、FastCGI和php-fpm的概念和区别和运行原理

    CGI: CGI的英文是(COMMON GATEWAY INTERFACE)公共网关接口,它的作用就是帮助服务器与语言通信,这里就是nginx和php进行通信,因为nginx和php的语言不通,因此需 ...

  7. QQ全量上云,你想了解的技术细节都在这

    腾讯的业务体量非常庞大,在2019年,腾讯已拥有超过了100万台服务器,其中,社交业务包括QQ和空间的体量有近20万台服务器,且分布在全国三地. 把QQ这头大象搬到云上并非易事.作为腾讯最庞大.最悠久 ...

  8. Android中的Service基础

    Service主要用于后台程序和跨进程访问,可以在不显示界面的前提下完成任务,不影响用户的其他操作. 这里我展示一些基本的用法 新建一个Service类 package com.example.ser ...

  9. mssql格式化工具——SQL PRETTY PRINTER

    1.mssql版本 mssql格式化工具有4个版本 1.桌面版 2.mssql插件 3.vs插件 4.api 2.下载地址 下载地址:http://www.dpriver.com/dlaction.p ...

  10. 2.Docker Compose 部署应用程序

    部署 Tomcat version: '3.1' services:  tomcat:   restart: always   image: tomcat   container_name: tomc ...