原题链接:https://vjudge.net/problem/UVA-437
分类:DAG
备注:记忆化搜索

#include<bits/stdc++.h>
using namespace std;
const int maxn=35;
struct Cube{int len,wid,hig;
}c[maxn*3];
int res[maxn*3],n,tot,kase;
int dp(int ind){if(res[ind])return res[ind];res[ind]=c[ind].hig;for(int i=1;i<=tot;i++){if((c[ind].len>c[i].len&&c[ind].wid>c[i].wid)||(c[ind].len>c[i].wid&&c[ind].wid>c[i].len))res[ind]=max(res[ind],dp(i)+c[ind].hig);}return res[ind];
}
int main(void){// freopen("in.txt","r",stdin);while(~scanf("%d",&n)&&n){memset(res,0,sizeof(res));tot=0;for(int i=1;i<=n;i++){int a,b,h;scanf("%d%d%d",&a,&b,&h);tot++;c[tot].len=a; c[tot].wid=b; c[tot].hig=h;tot++;c[tot].len=a; c[tot].wid=h; c[tot].hig=b;tot++;c[tot].len=h; c[tot].wid=b; c[tot].hig=a;}for(int i=1;i<=tot;i++)if(!res[i])dp(i);int ans=0;for(int i=1;i<=tot;i++)ans=max(ans,res[i]);printf("Case %d: maximum height = %d\n",++kase,ans);}return 0;
}

例题 9-2 巴比伦塔(The Tower of Babylon, UVa 437)相关推荐

  1. UVA437 巴比伦塔 The Tower of Babylon(矩形嵌套进阶版、DAG上DP、记忆化搜索)

    整理的算法模板合集: ACM模板 本题和基础的矩形覆盖差不多,只不过变成了三维的长方形. 因为每次转移的时候只有顶面的x和y会影响决策的进行,所以我们只需要用一个二元组(a,b)(a, b)(a,b) ...

  2. Uva 437 - The Tower of Babylon(DP)

    题目链接 https://vjudge.net/problem/UVA-437 [题意]        给定n种不同的立方体,每种立方体都有无穷多个,现在要用它们跌放在一起组成一个巴比伦塔,并且处在某 ...

  3. 【UVA 437】The Tower of Babylon(记忆化搜索写法)

    [题目链接]:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_probl ...

  4. uva437The Tower of Babylon

    题意:给定n个长方体,叠加长方体,规则是上面的长方体长和宽都要小于下面的长方体.每种长方体有无数个,问叠加最高为多少. 分析:dp,递归搜索最大高度.' #include<iostream> ...

  5. uva 437——The Tower of Babylon

    题意:给定n个长方体,然后堆积最高的塔,要求上面的面积小于下面的面积. 思路:Dp,先把长方体的所有放的情况都构造出来放到数组里,对于当前节点,如果能够在前面找到面积比当前小,高度累加比当前高的则转移 ...

  6. 【UVA 437】The Tower of Babylon(拓扑排序+DP,做法)

    [Solution] 接上一篇,在处理有向无环图的最长链问题的时候,可以在做拓扑排序的同时,一边做DP; 设f[i]表示第i个方块作为最上面的最高值; f[y]=max(f[y],f[x]+h[y]) ...

  7. 【DP】【Uva437】UVA437 The Tower of Babylon

    传送门 Description Input Output Sample Input 1 10 20 30 2 6 8 10 5 5 5 7 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 ...

  8. 33行代码AC——例题6-5 移动盒子(Boxes in a Line, UVa 12657)——解题报告

    题目大意 对升序排列的n个数字(1开始编号)进行一系列操作,输出最终序列的奇位数之和.操作如下: 1 X Y:把X移到Y左侧 2 X Y:把X移到Y右侧 3 X Y:交换X和Y 4:反转序列(逆置) ...

  9. 30行代码AC——例题6-3 矩阵链乘(Maxtrix Chain Multiplication, UVa 442)——解题报告

    励志用尽量少的代码做高效的表达. 题目(提交)链接→UVa-442 储备知识: 矩阵相乘次数: 如图:A矩阵*B矩阵得到C矩阵. C矩阵中元素个数=A矩阵行数*B矩阵列数.得到C矩阵中任意元素都需要运 ...

  10. 例题 8-4 传送中的车(Fabled Rook, UVa 11134)

    原题链接:https://vjudge.net/problem/UVA-11134 分类:贪心法 备注:问题分解 可以看出两个维度上的问题是独立的,因此把二维问题化成一维问题 贪心思想看:https: ...

最新文章

  1. LINUX中断学习笔记【转】
  2. c++ const 类型检查
  3. Redis快的原因:内存操作 单线程没有切换开销 多路复用IO
  4. 95后CV工程师晒出工资单:狠补了这个,真香…
  5. 预训练语言模型真的是世界模型?
  6. mysql 1524_MySQL不允许用户登录:错误1524
  7. 6阶群的非平凡子群_离散数学复习笔记
  8. mysql tee_MySQL 使用tee记录语句和输出日志
  9. 二进制转十六进制的详细步骤
  10. butter滤波器是iir吗_IIR Butterworth型模拟低通滤波器设计原理
  11. SAP-ABAP-小计收起/折叠明细项目-只显示小计内容
  12. 小众播客,音乐平台的新战场?
  13. 支持个性化定制的酷玩多功能桌面充电器上手体验
  14. 试试多线程(java)
  15. IDEA中创建启动Vue项目--搭建vue项目
  16. json解析 C# json解析
  17. js单行代码------数组
  18. mysql strlen 函数_sizeof和strlen函数区别
  19. selenium打开谷歌浏览器
  20. 【ArcGIS Pro二次开发】系列学习笔记,持续更新,记得收藏

热门文章

  1. Flex 绘制圆形或椭圆并填充图片
  2. 2016服务器系统配置网站,Server 2016服务器操作系统中配置NIC组合
  3. 看刘未鹏先生的博客的一些摘记
  4. 吊打何同学?B站UP主24小时肝出AirDesk平替,成本6000!
  5. ceres拟合分段函数
  6. c语言的32位指针加1是多少,c语言中,指针加1的情况.指针变量详细介绍
  7. 看见更有远见的技术管理
  8. Android状态栏禁止下拉异常分析
  9. dub解析json为构
  10. DedeCMS 后台地址泄露漏洞