开启DP之路

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1069
 描述一下:

就是给定N(N<=20)个方体,让你放置,求放置的最高高度,限制条件是:上面的物体的长度和宽度都小于下面物体。

觉得这道题目很经典:

于是贴下

。我们可以把一个方体看成六个,想到这里,然后求最高,方程很简单了 ,

 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;#include<stdio.h>
#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的更多相关文章

  1. HDU 1069 dp最长递增子序列

    B - Monkey and Banana Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I6 ...

  2. hdu 1069 (DP) Monkey and Banana

    题目:这里 题意: Description 一组研究人员正在设计一项实验,以测试猴子的智商.他们将挂香蕉在建筑物的屋顶,同时,提供一些砖块给这些猴子.如果猴子足够聪明,它应当能够通过合理的放置一些砖块 ...

  3. hdoj 1257 DP||贪心

    最少拦截系统 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  4. HDOJ 1260 DP

    Tickets Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  5. HDOJ 3944 DP?

    尽量沿着边走距离最短.化减后 C(n+1,k)+ n - k, 预处理阶乘,Lucas定理组合数取模 DP? Time Limit: 10000/3000 MS (Java/Others)    Me ...

  6. HDOJ(1069)最长下降子序列

    每个箱子可有3种叠加方式,所以有3*n个箱子.将箱子按长度由大到小排序,有求箱子按宽度的最长下降子序列的高度之和即可. #include<cstdio> #include<algor ...

  7. HDU 1069&&HDU 1087 (DP 最长序列之和)

    H - Super Jumping! Jumping! Jumping! Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format: ...

  8. 找规律/数位DP HDOJ 4722 Good Numbers

    题目传送门 /* 找规律/数位DP:我做的时候差一点做出来了,只是不知道最后的 is_one () http://www.cnblogs.com/crazyapple/p/3315436.html 数 ...

  9. 递推DP HDOJ 5328 Problem Killer

    题目传送门 /* 递推DP: 如果a, b, c是等差数列,且b, c, d是等差数列,那么a, b, c, d是等差数列,等比数列同理 判断ai-2, ai-1, ai是否是等差(比)数列,能在O( ...

随机推荐

  1. 百度 迷你版 UMeditor富文本编辑器 使用方法

    第一步:下载编辑器 到官网下载 umeditor 最新版源码版本,下载之后打开 _examples/index.html 就可以看到演示例子.[下载页面] 第二步:部署编辑器到页面 解压下载的包,放到 ...

  2. DevExpress XtraGrid 数据导出导入Excel

    // <summary> /// 导出按钮 /// </summary> /// <param name="sender"></param ...

  3. 金山词霸每日一句开放平台 .NET demo

    先附上地址:http://open.iciba.com/?c=api 小金山提供了2种获取数据的方式 1. 通过填入自己的网站名称.网址.邮箱地址 来生成一段javascript脚本,直接将生成的代码 ...

  4. 第一节:CLR寄宿

    本系列文章来自 CLR VIA C# .NET FrameWork在Microsoft  Windows平台的顶部运行.这意味着.NET必须用Windows可以理解的技术来构建.首先,所有的托管模块和 ...

  5. jquery.validate新的写法(jquery.validate1.13.js)

    <script src="../js/jquery.js"></script> <script src="../js/jquery.vali ...

  6. shell括号操作符

    以下以bash环境下做解说 一.单小括号() 二.双小括号(()) 可作数值条件操作,也可作数值运算使用(近似于 let 命令) 如 C 语言语法一样,支持运算符:<<.<<= ...

  7. MIFARE系列8《D8M1.exe》

    软件名:D8M1.exe 更新时间:2014.06.28 操作系统:windowAll 外部设备:D8读卡器 D8M1可以对MIFARE块读写操作,支持1K,4K.检验KEY后返回SAK,QTAQ,U ...

  8. scp 跨机远程拷贝

    scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器. 命令格式: scp [参数] [原路径] [目标路径] ...

  9. DB2中ixf文件的导入导出

    1. 导出数据 语法:EXPORT TO <文件路径>/文件名.IXF OF IXF SELECT * FROM 表名   2. 导入数据 语法:db2 IMPORT FROM <路 ...

  10. ios中怎么样判断路径最后的后缀名称

    使用hasSuffix属性即可 例如 [photo.thumbnail_pic.lowercaseString hasSuffix:@"gif"]