HDU1069:Monkey and Banana(最长上升子序列的应用)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1069
这题挺简单的,给定一个箱子的长宽高,要求啰箱子,但必须保证下面箱子的长和宽必须大于上面的箱子。
一个箱子,有六种情况,排序后,按照最长上升子序列来求解就行了。
代码如下:
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <algorithm>
#define inf 0x3f3f3f3f
typedef long long ll;
using namespace std;
int n,tt,dp[];
struct node
{
int x,y,z;
} q[];
int cmp(const void *aa,const void *bb)
{
struct node *a=(struct node *)aa;
struct node *b=(struct node *)bb;
if(a->x!=b->x)
return b->x-a->x;
else if(a->y!=b->y)
return b->y-a->y;
else return b->z-a->z;
}
int main()
{
int K=;
int xx,yy,zz;
int maxx;
while(scanf("%d",&n)!=EOF&&n!=)
{
++K;
tt=;
maxx=-inf;
for(int i=; i<n; i++)
{
scanf("%d%d%d",&xx,&yy,&zz);
q[tt].x=xx;
q[tt].y=yy;
q[tt++].z=zz; q[tt].x=xx;
q[tt].y=zz;
q[tt++].z=yy; q[tt].x=yy;
q[tt].y=xx;
q[tt++].z=zz; q[tt].x=yy;
q[tt].y=zz;
q[tt++].z=xx; q[tt].x=zz;
q[tt].y=xx;
q[tt++].z=yy; q[tt].x=zz;
q[tt].y=yy;
q[tt++].z=xx;
}
qsort(q+,tt+,sizeof(q[]),cmp);
memset(dp,,sizeof(dp));
dp[]=q[].z;
maxx=max(maxx,q[].z);
for(int i=;i<tt;i++)
{
for(int j=;j<i;j++)
{
if(q[i].x<q[j].x&&q[i].y<q[j].y)
{
dp[i]=max(dp[i],dp[j]);
}
}
dp[i]=dp[i]+q[i].z;
maxx=max(maxx,dp[i]);
}
printf("Case %d: maximum height = %d\n",K,maxx);
}
return ;
}
HDU1069:Monkey and Banana(最长上升子序列的应用)的更多相关文章
- 杭电oj 1069 Monkey and Banana 最长递增子序列
Monkey and Banana Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- HDU 1069 Monkey and Banana(最长递减子序列)
题目链接 题意:摞长方体,给定长方体的长宽高,个数无限制,可随意翻转,要求下面的长方体的长和宽都大于上面的,都不能相等,问最多能摞多高. 题解:个数无限,其实每种形态最多就用一次,把每种形态都单独算一 ...
- HDU1069 Monkey and Banana
HDU1069 Monkey and Banana 题目大意 给定 n 种盒子, 每种盒子无限多个, 需要叠起来, 在上面的盒子的长和宽必须严格小于下面盒子的长和宽, 求最高的高度. 思路 对于每个方 ...
- kuangbin专题十二 HDU1069 Monkey and Banana (dp)
Monkey and Banana Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- HDU1069 Monkey and Banana —— DP
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1069 Monkey and Banana Time Limit: 2000/1000 MS ...
- HDU1069:Monkey and Banana(DP+贪心)
Problem Description A group of researchers are designing an experiment to test the IQ of a monkey. T ...
- HDU-1069 Monkey and Banana DAG上的动态规划
题目链接:https://cn.vjudge.net/problem/HDU-1069 题意 给出n种箱子的长宽高 现要搭出最高的箱子塔,使每个箱子的长宽严格小于底下的箱子的长宽,每种箱子数量不限 问 ...
- HDU1069 - Monkey and Banana【dp】
题目大意 给定箱子种类数量n,及对应长宽高,每个箱子数量无限,求其能叠起来的最大高度是多少(上面箱子的长宽严格小于下面箱子) 思路 首先由于每种箱子有无穷个,而不仅可以横着放,还可以竖着放,歪着放.. ...
- HDU1069 Monkey and Banana(dp)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1069 题意:给定n种类型的长方体,每个类型长方体无数个,要求长方体叠放在一起,且上面的长方体接触面积要小于 ...
- hdu1069 Monkey and Banana LIS
#include<cstdio> #include<iostream> #include<algorithm> #include<queue> #inc ...
随机推荐
- TCP/IP详解读书笔记:ARP-地址解析协议
地址解析为两种不同的地址形式提供映射:32bit的IP和数据链路层使用的任何类型的地址. 当一台主机把以太网数据帧发送到位于同一局域网的另一台主机,是根据48bit的以太网地址而不是IP地址.设备驱动 ...
- Taxi Cab Scheme UVALive - 3126 最小路径覆盖解法(必须是DAG,有向无环图) = 结点数-最大匹配
/** 题目:Taxi Cab Scheme UVALive - 3126 最小路径覆盖解法(必须是DAG,有向无环图) = 结点数-最大匹配 链接:https://vjudge.net/proble ...
- js移除某一类的div
(转载)Javascript removeChild()不能删除全部子节点的解决办法 在Javascript中,只提供了一种删除节点的方法:removeChild().removeChild() ...
- Sql server 打不开了,无法识别的配置节 system.serviceModel 解决方案
异常描述: System.Configuration.ConfigurationErrorsException: 配置系统未能初始化 ---> System.Configuration.Conf ...
- Crosses Puzzles zoj 4018 (zju校赛)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5746 题目大意: N*M的方格里,每个格子有一个指针,一开始指向上下左右四个方 ...
- ARM汇编(2)(指令)
一,ARM汇编语言立即数的表示方法 十六进制:前缀:0x 十进制:无前缀 二制:前缀:0b 二,常用的ARM指令(标准的ARM语法,GNU的ARM语法) 1.@M开头系列 MOV R0, #12 @R ...
- ubuntu安装scala详细教程
ubuntu14 安装scala详细教程 1.下载scala压缩包 http://www.scala-lang.org/download/ 2.建立目录,解压文件到所建立目录 $ sudo mkdir ...
- Asp.net控制Tomcat启动关闭的实现方法
一.场景 近日有个项目客户要求能自己配置相关权限.由于历史原因这个项目采用的是公司以前的权限系统.这个权限系统很强大,不过有个弊端,就是每增加一个权限菜单都要重启才能生效,不然就要等1天它缓存过期后才 ...
- C语言必掌握知识点
个人总结,学c的赶快看 1-.++a 和 a++ 的差别: ++a 先加在赋值 a++ 先赋值在加 后者赋给变量b的值为a而不是a+1后的值 2-.按位与 同为1时为1,其 ...
- RecyclerView上拉隐藏Toolbar,下拉显示
RecyclerView下拉隐藏Toolbar,上拉显示效果图 先说个事:最近我准备做个开源的博客园android客户端!符合Google最新的material design设计风格的!不知道有没有小 ...