JZ初中OJ 2000. [2015.8.6普及组模拟赛] Leo搭积木

题目描述
         Leo是一个快乐的火星人,总是能和地球上的OIers玩得很high。
         2012到了,Leo又被召回火星了,在火星上没人陪他玩了,但是他有好多好多积木,于是他开始搭积木玩。
       火星人能制造n种积木,积木能无限供应。每种积木都是长方体,第i种积木的长、宽、高分别为li、wi、hi。积木可以旋转,使得长宽高任意变换。Leo想要用这些积木搭一个最高的塔。问题是,如果要把一个积木放在另一个积木上面,必须保证上面积木的长和宽都严格小于下面积木的长和宽。这意味着,即使两块长宽相同的积木也不能堆起来。
       火星上没有电脑,好心的你决定帮助Leo求出最高的塔的高度。

【提示】
每种积木都可以拆分成高度分别为li、wi、hi的三种积木,另两边作为长和宽,保证长>=宽。
 
输入
第一行,一个整数n,表示积木的种数
接下来n行,每行3个整数li,wi,hi,表示积木的长宽高
输出
一行一个整数,表示塔高的最大值
 
样例输入
Sample Input1:
1
10 20 30


Sample Input2:
2
6 8 10
5 5 5



Sample Input3:
5
31 41 59
26 53 58
97 93 23
84 62 64
33 83 27

 
样例输出
Sample Output1:
40


Sample Output2:
21


Sample Output3:
342
 
数据范围限制
对于30%的数据 n<=8
对于100%的数据 n<=3000,最后答案不会超过32位整型
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 struct Node{
 4     int w,l,h;
 5 }a[10001];
 6 bool bdx(Node c,Node d)
 7 {
 8     return c.l<d.l;
 9 }
10 int main()
11 {
12     freopen("brick.in","r",stdin);
13     freopen("brick.out","w",stdout);
14     int n,f[10001],ans;
15     cin>>n;
16     int o,p,q;
17     for(int i=1;i<=n;i++)
18     {
19         cin>>o>>p>>q;
20         a[i].l=max(o,p);a[i].w=min(o,p);a[i].h=q;
21         a[i+n].l=max(o,q);a[i+n].w=min(o,q);a[i+n].h=p;
22         a[i+2*n].l=max(p,q);a[i+2*n].w=min(p,q);a[i+2*n].h=o;
23     }
24     sort(a+1,a+3*n+1,bdx);
25     for(int i=1;i<=3*n;i++)
26         f[i]=a[i].h;
27     for(register int i=3*n;i>=1;i--)
28         for(register int j=i+1;j<=3*n;j++)
29             if(a[i].w<a[j].w && a[i].l != a[j].l)
30                 f[i]=max(f[j]+a[i].h,f[i]);
31     for(int i=1;i<=3*n;i++)
32     ans=max(ans,f[i]);
33     cout<<ans;
34 }

转载于:https://www.cnblogs.com/anbujingying/p/11305439.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
hustoj.iso 是一个软件系统镜像文件。Hustoj是一个开源的在线评测系统,它被广泛应用于大学和高中的程序设计教学中。该系统的目标是提供一个方便使用的在线评测和训练环境,使学生能够提交他们的程序代码,并获得即时的评测结果。 hustoj.iso 是Hustoj的系统镜像文件,可以用来部署Hustoj系统。通过将hustoj.iso 文件安装到服务器上,就可以建立一个运行Hustoj系统的评测服务器。用户可以通过web界面访问该服务器,并提交自己的程序代码进行评测。 hustoj.iso 是一个基于Ubuntu操作系统的镜像文件。它集成了所有Hustoj系统所需要的软件和依赖项,并进行了预配置,使得安装和部署变得更加简单。用户只需要将hustoj.iso文件写入到U盘或光盘中,然后引导服务器从U盘或光盘启动,就可以开始安装Hustoj系统了。 使用hustoj.iso 部署Hustoj系统,可以为学生提供一个良好的在线评测环境,帮助他们进行程序设计的学习和训练。学生可以在该系统中提交自己的程序代码,并获得详尽的评测结果,包括运行时间、内存消耗、错误信息等等。同时,Hustoj还具有包括代码分享、竞织等其他功能,能够满足不同需求的学生。 总之,hustoj.iso 是一个用于部署Hustoj系统的镜像文件,通过安装hustoj.iso,可以搭建一个功能完善、易用的在线评测环境,为程序设计学习提供有力的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值