HDOJ 1069 DP
开启DP之路
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1069
描述一下:
就是给定N(N<=20)个方体,让你放置,求放置的最高高度,限制条件是:上面的物体的长度和宽度都小于下面物体。
觉得这道题目很经典:
于是贴下
。我们可以把一个方体看成六个,想到这里,然后求最高,方程很简单了 ,
#include<algorithm>
#include<string.h>
using namespace std;
struct node
{
int x,y,h;
}a[];
int cmp(node x,node y)
{
if (x.x==y.x) return x.y>y.y;
return x.x>y.x;
}
int main()
{
int n;
int t=;
while (scanf("%d",&n)!=EOF)
{
t++;
if (n==) break;
int xx,yy,zz,nn=;
for (int i=;i<=n;i++)
{
scanf("%d%d%d",&xx,&yy,&zz);
a[++nn].x=xx;a[nn].y=yy;a[nn].h=zz;
a[++nn].x=xx;a[nn].y=zz;a[nn].h=yy;
a[++nn].x=yy;a[nn].y=xx;a[nn].h=zz;
a[++nn].x=yy;a[nn].y=zz;a[nn].h=xx;
a[++nn].x=zz;a[nn].y=yy;a[nn].h=xx;
a[++nn].x=zz;a[nn].y=xx;a[nn].h=yy;
}
sort(a+,a+nn+,cmp);
a[].h=;
a[].x=a[].y=; for (int i=;i<=nn;i++)
{
int ans=;
for (int j=;j<i;j++)
if (a[j].x>a[i].x&&a[j].y>a[i].y)
ans=max(ans,a[j].h+a[i].h);
a[i].h=ans;
}
int ans=;
for (int i=;i<=nn;i++)
ans=max(ans,a[i].h);
printf("Case %d: maximum height = %d\n",t,ans);
}
return ;
}
求出A[1].H--A[N].H的最大ok了
HDOJ 1069 DP的更多相关文章
- HDU 1069 dp最长递增子序列
B - Monkey and Banana Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I6 ...
- hdu 1069 (DP) Monkey and Banana
题目:这里 题意: Description 一组研究人员正在设计一项实验,以测试猴子的智商.他们将挂香蕉在建筑物的屋顶,同时,提供一些砖块给这些猴子.如果猴子足够聪明,它应当能够通过合理的放置一些砖块 ...
- hdoj 1257 DP||贪心
最少拦截系统 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- HDOJ 1260 DP
Tickets Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- HDOJ 3944 DP?
尽量沿着边走距离最短.化减后 C(n+1,k)+ n - k, 预处理阶乘,Lucas定理组合数取模 DP? Time Limit: 10000/3000 MS (Java/Others) Me ...
- HDOJ(1069)最长下降子序列
每个箱子可有3种叠加方式,所以有3*n个箱子.将箱子按长度由大到小排序,有求箱子按宽度的最长下降子序列的高度之和即可. #include<cstdio> #include<algor ...
- HDU 1069&&HDU 1087 (DP 最长序列之和)
H - Super Jumping! Jumping! Jumping! Time Limit:1000MS Memory Limit:32768KB 64bit IO Format: ...
- 找规律/数位DP HDOJ 4722 Good Numbers
题目传送门 /* 找规律/数位DP:我做的时候差一点做出来了,只是不知道最后的 is_one () http://www.cnblogs.com/crazyapple/p/3315436.html 数 ...
- 递推DP HDOJ 5328 Problem Killer
题目传送门 /* 递推DP: 如果a, b, c是等差数列,且b, c, d是等差数列,那么a, b, c, d是等差数列,等比数列同理 判断ai-2, ai-1, ai是否是等差(比)数列,能在O( ...
随机推荐
- centos彻底删除mysql
yum remove mysql mysql-server mysql-libs compat-mysql51rm -rf /var/lib/mysqlrm /etc/my.cnf查看是否还有mysq ...
- javascript绑定时间 含(IE)
script language = "javascript" type = "text/javascript"> function test(){ win ...
- Flask Web Development —— Web表单(上)
Flask-WTF扩展使得处理web表单能获得更愉快的体验.该扩展是一个封装了与框架无关的WTForms包的Flask集成. Flask-WTF和它的依赖集可以通过pip来安装: (venv) $ p ...
- Kindeditor小改动
1.Flash上传时默认的大小为550*400,修改Kindeditor/plugins/flash/flash.js里的 self.plugin.flash内容,根据自己的页面直接设置默认大小,方便 ...
- JQuery ----文档处理
1.append(content|fn) 概述 向每个匹配的元素内部追加内容. 这个操作与对指定的元素执行appendChild方法,将它们添加到文档中的情况类似. 2.appendTo(conten ...
- QTP获取系统时间并自定义格式
function GetDateTime(Nowstr) Dim Currentdatetime Dim YY 'Year Dim MM ...
- bzoj 1054 移动玩具
题目连接 http://www.lydsy.com/JudgeOnline/problem.php?id=1054 移动玩具 Description 在一个4*4的方框内摆放了若干个相同的玩具,某人想 ...
- android开发遇到SDK无法访问谷歌而安装不了的情况
遇到SDK无法访问谷歌而安装不了的情况 1.修改C:\Windows\System32\drivers\etc的HOSTS文件,添加 #google_android更新203.208.46.146 d ...
- metaq
MetaQ(全称Metamorphosis)是一个高性能.高可用.可扩展的分布式消息中间件,思路起源于LinkedIn的Kafka,但并不是Kafka的一个Copy.MetaQ具有消息存储顺序写.吞吐 ...
- 依网友要求发个修改award bios的方法(刷CPU微码)
注意本文修改的是award BIOS 首先看自己的CPUID是哪个代码,打开CPU-Z如下图红圈中就是,此CPUID就是067A,好了下面就可以开始准备工作 准备好BIOS文件,以及CPU微码文件.可 ...