zoukankan      html  css  js  c++  java
  • HDU 1069 基础动态规划+排序

    题意 给出n种立方体石头 当且仅当一块石头的底部宽度长度都小于一块石头的时候才能放在上面 问最高能放多高?石头不限数目

    然而同样一种石头采用同样的摆放方式 两快相同石头一定无法进行放置 所以 一块石头的一种摆放方式最多使用一次

    进行一下排序 让长与宽最小的放在最前面 然后就是可爱的dp模板了

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    #include<map>
    #include<math.h>
    using namespace std;
    struct node
    {
        int a,b,c;
    };
    node q[50000];
    int dp[50000];
    int cmp(node z,node x)
    {
        if(z.b==x.b)
            return z.a>x.a;
        else return z.b>x.b;
    }
    int main(){
    int n;
    int tt=1;
    while(~scanf("%d",&n))
    {
        if(n==0)
            break;
        int w=0;
        for(int i=0;i<n;i++)
        {
            int x,y,z;
            scanf("%d%d%d",&x,&y,&z);
            q[w].a=x;
            q[w].b=y;
            q[w++].c=z;
            q[w].a=y;
            q[w].b=x;
            q[w++].c=z;
            q[w].a=y;
            q[w].b=z;
            q[w++].c=x;
            q[w].a=z;
            q[w].b=y;
            q[w++].c=x;
            q[w].a=x;
            q[w].b=z;
            q[w++].c=y;
            q[w].a=z;
            q[w].b=x;
            q[w++].c=y;
        }
        sort(q,q+w,cmp);
        dp[0]=q[0].c;
        for(int i=1;i<w;i++)
        {
            int minn=0;
            for(int k=0;k<i;k++)
            {
                if(q[k].a>q[i].a&&q[k].b>q[i].b)
                {
                    if(dp[k]>minn)
                    {
                        minn=dp[k];
                    }
                }
            }
            dp[i]=q[i].c+minn;
        }
        int ans=0;
        for(int i=0;i<w;i++)
        {
            if(dp[i]>ans)
            {
                ans=dp[i];
            }
        }
        printf("Case %d: maximum height = %d
    ",tt++,ans);
    }
    }
    

      

  • 相关阅读:
    热烈祝贺自己的博客进入前1000名
    烈日之后逛成都
    懂得爱情
    腾飞天涯
    哈佛教授教你成为No.1的秘诀
    烈日炎炎
    有缘无份——因为伤感所以美丽
    时间管理
    亲爱的陌生人(转)
    走好激励第一步
  • 原文地址:https://www.cnblogs.com/rayrayrainrain/p/5309156.html
Copyright © 2011-2022 走看看