题目链接:https://uva.onlinejudge.org/external/4/437.pdf

题意:巴比伦塔:

给出n种立方体,一个立方体能放到另一个立方体上,必须满足,底面一定要小于下面的立方体。求巴比伦塔最多堆多高?

分析:

DAG很容易想到,主要是状态的描叙。

一个立方体,他有3种情况,状态的描叙就用dp[id][3],此时dp[][i] I 来记录哪个是高。

#include <bits/stdc++.h>using namespace std;int blocks[35][3];
int d[35][3];
int n;void get_dimensions(int *v,int b,int dim) {int idx = 0;for(int i=0;i<3;i++) {if(i!=dim)v[idx++] = blocks[b][i];}
}int dp(int i,int j)
{int& ans = d[i][j];if(ans>0) return ans;ans = 0;int v[2],v2[2];get_dimensions(v,i,j);for(int a=0;a<n;a++) {for(int b=0;b<3;b++) {get_dimensions(v2,a,b);if(v2[0]<v[0]&&v2[1]<v[1])ans = max(ans,dp(a,b));}}ans+=blocks[i][j];return ans;
}int main()
{int cases = 1;while(scanf("%d",&n),n) {for(int i=0;i<n;i++) {for(int j=0;j<3;j++) {scanf("%d",&blocks[i][j]);}sort(blocks[i],blocks[i]+3);}memset(d,0,sizeof(d));int ans = 0;for(int i=0;i<n;i++) {for(int j=0;j<3;j++) {ans = max(ans,dp(i,j));}}printf("Case %d: maximum height = %d\n",cases++,ans);}return 0;
}

View Code

转载于:https://www.cnblogs.com/TreeDream/p/5978184.html

uva 437,巴比伦塔相关推荐

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

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

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

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

  3. uva 437——The Tower of Babylon

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

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

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

  5. UVa在线比赛单题汇总-----DP专题

    动态规划基础 例题 LA 3882 UVa 3882 - And Then There Was One 递推------------无力orz UVa 10635 10635 - Prince and ...

  6. C语言里 指针变量强制类型转换,C语言之强制类型转换与指针--#define DIR *((volatile unsigned int *) 0x0022)...

    强制类型转换形式:(类型说明符) (表达式) 举例说明:1) int a; a = (int)1.9; 2)char *b; int *p; p = (int *) b; //将b的值强制转换为指向整 ...

  7. DP(动态规划)总结

    1. 写在前面的话 之前写了一篇不像总结的动态规划总结,感觉更像是一个成长历程,所以就打算重写一篇. 2. 对DP简单的总结 dp的题目特点 求最大或者最小值(如背包:价值最大.凑硬币:数量最少--) ...

  8. 紫书《算法竞赛入门经典》

    紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...

  9. UVa 496 Simply Subsets (STLset_intersection)

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=sh ...

  10. [搜索]UVa 129 困难的串

    题意:将一个包含两个相邻的重复子串的子串,称为"容易的串",其他为"困难的串". 输入正整数n和l,输出由前l个字符组成的,字典序第n小的困难的串. 输入样例: ...

最新文章

  1. Android ListView item设置分割线以及分割线宽度
  2. 用Spring Cloud Alibaba开发微服务会更香吗?
  3. Silverlight Downloads
  4. 超图iClient 3D 入门程序 - 1
  5. java oracle 乐观锁,oracle为什么默认乐观锁
  6. python docker自动化_「docker实战篇」python的docker爬虫技术-移动自动化控制工具安卓ADB的使用(15)...
  7. MATLAB图像处理之二值化以及灰度处理
  8. 打工人打工魂,打工人上人
  9. 七夕表白小代码喜欢的拿去
  10. Python设计模式:抽象工厂模式
  11. html中怎么让照片变模糊,CSS改变图片由模糊到清晰
  12. dvwa页面打不开的原因_细看网页打不开的解决办法以及原因细看
  13. SSH-KeyGen -认证密钥的生成、管理和转换
  14. c语言编程单片机中的sbit,用sbit定义可位寻址的特殊功能寄存器时的地址转换-51单片机C编程...
  15. 小程序个人中心页面,模块入口搭建
  16. SSO - 我们为何需要单点登录系统
  17. hex文件详解及常用合并方法介绍
  18. An error occurred uploading to the App Store.
  19. AssetStudioGUI获取Unity游戏资源
  20. 机器人的「语料」,如何获取?

热门文章

  1. 机器学习:数学加强(二)——条件概率、贝叶斯公式、常见分布、协方差、相关系数、切比雪夫不等式、大数定律
  2. 如何快速将CAD图纸转换成PDF文件?
  3. 麦吉尔商业与计算机科学,麦吉尔大学与UBC大学那个好考
  4. 如何下载哔哩哔哩里的视频
  5. 四、异常(高琪java300集+java从入门到精通笔记)
  6. 用html画动漫人物,画动漫人物的步骤?
  7. 知识点 - 快速沃尔什变换
  8. 联想服务器网卡显示不全,ThinkSystem系列服务器板载1Gb网口及LOM网卡接入100Mb交换机显示无连接...
  9. sheet(isPresented:onDismiss:content:) (SwiftUI 中文文档手册 教程含源码)
  10. 计算机配置35%卡住不动了,win7配置更新35%不动怎么回事_win7配置windows update完成35卡住不动了如何解决...