zoukankan      html  css  js  c++  java
  • hdu 1069

    题意:把给定的长方体(不限)叠加在一起,叠加的条件是,上面一个长方体的长和宽都比下面长方体的长
    和宽短;求这些长方体能叠加的最高的高度.(其中(3,2,1)可以摆放成(3,1,2)、(2,1,3)等).
    思路:其实就是求最长的单调递减序列。在长和宽的递减下,求最大能得出的最大高度了

    #include<iostream>
    #include<cstdio>
    using namespace std;
    struct po
    {
        int x;
        int y;
        int z;
    }p[200];
    int com(const void *a,const void *b)
    {
        struct po *c=(po *)a;
        struct po *d=(po *)b;
        if(c->x==d->x)
            return c->y-d->y;
        return c->x-d->x;
    }
    int t=1;
    int main()
    {
        int n,i,j,xx,yy,zz,len,max;
        while(cin>>n&&n!=0)
        {
            len=0;
            for(i=0;i<n;i++)
            {
                cin>>xx>>yy>>zz;
                p[len].x=xx;
                p[len].y=yy;
                p[len].z=zz;
                ++len;
                p[len].x=yy;
                p[len].y=xx;
                p[len].z=zz;
                ++len;
                p[len].x=zz;
                p[len].y=yy;
                p[len].z=xx;
                 ++len;
                p[len].x=yy;
                p[len].y=zz;
                p[len].z=xx;
                ++len;
                p[len].x=xx;
                p[len].y=zz;
                p[len].z=yy;
                ++len;
                p[len].x=zz;
                p[len].y=xx;
                p[len].z=yy;
                ++len;
            }
            qsort(p,len,sizeof(p[1]),com);
            for(i=1;i<len;i++)
            {
                max=0;
                for(j=0;j<i;j++)
                    if(((p[i].x>p[j].x&&p[i].y>p[j].y)||(p[i].x>p[j].y&&p[i].y>p[j].x))&&p[j].z>max)
                        max=p[j].z;
                p[i].z=p[i].z+max;
            }
            max=0;
            for(i=0;i<len;i++)
                if(p[i].z>max)
                    max=p[i].z;
            cout<<"Case "<<t<<": maximum height = "<<max<<endl;
            t++;
        }
    return 0;
    }
  • 相关阅读:
    元组,字典
    python字符串
    tensorflow 学习笔记
    tensorflow example1
    python第二章(2)列表
    python3.5学习第二章(1)标准库,bytes
    类加载过程
    数据值与地址值
    类的初始化与实例化顺序
    SpringCloudBus
  • 原文地址:https://www.cnblogs.com/zhangdashuai/p/3704484.html
Copyright © 2011-2022 走看看