uva 437,巴比伦塔
题目链接:https://uva.onlinejudge.org/external/4/437.pdf
题意:巴比伦塔:
给出n种立方体,一个立方体能放到另一个立方体上,必须满足,底面一定要小于下面的立方体。求巴比伦塔最多堆多高?
分析:
DAG很容易想到,主要是状态的描叙。
一个立方体,他有3种情况,状态的描叙就用dp[id][3],此时dp[][i] I 来记录哪个是高。
![](/assets/blank.gif)
![](/assets/blank.gif)
#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,巴比伦塔相关推荐
- 【UVA 437】The Tower of Babylon(记忆化搜索写法)
[题目链接]:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_probl ...
- Uva 437 - The Tower of Babylon(DP)
题目链接 https://vjudge.net/problem/UVA-437 [题意] 给定n种不同的立方体,每种立方体都有无穷多个,现在要用它们跌放在一起组成一个巴比伦塔,并且处在某 ...
- uva 437——The Tower of Babylon
题意:给定n个长方体,然后堆积最高的塔,要求上面的面积小于下面的面积. 思路:Dp,先把长方体的所有放的情况都构造出来放到数组里,对于当前节点,如果能够在前面找到面积比当前小,高度累加比当前高的则转移 ...
- 【UVA 437】The Tower of Babylon(拓扑排序+DP,做法)
[Solution] 接上一篇,在处理有向无环图的最长链问题的时候,可以在做拓扑排序的同时,一边做DP; 设f[i]表示第i个方块作为最上面的最高值; f[y]=max(f[y],f[x]+h[y]) ...
- UVa在线比赛单题汇总-----DP专题
动态规划基础 例题 LA 3882 UVa 3882 - And Then There Was One 递推------------无力orz UVa 10635 10635 - Prince and ...
- C语言里 指针变量强制类型转换,C语言之强制类型转换与指针--#define DIR *((volatile unsigned int *) 0x0022)...
强制类型转换形式:(类型说明符) (表达式) 举例说明:1) int a; a = (int)1.9; 2)char *b; int *p; p = (int *) b; //将b的值强制转换为指向整 ...
- DP(动态规划)总结
1. 写在前面的话 之前写了一篇不像总结的动态规划总结,感觉更像是一个成长历程,所以就打算重写一篇. 2. 对DP简单的总结 dp的题目特点 求最大或者最小值(如背包:价值最大.凑硬币:数量最少--) ...
- 紫书《算法竞赛入门经典》
紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...
- UVa 496 Simply Subsets (STLset_intersection)
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=sh ...
- [搜索]UVa 129 困难的串
题意:将一个包含两个相邻的重复子串的子串,称为"容易的串",其他为"困难的串". 输入正整数n和l,输出由前l个字符组成的,字典序第n小的困难的串. 输入样例: ...
最新文章
- Android ListView item设置分割线以及分割线宽度
- 用Spring Cloud Alibaba开发微服务会更香吗?
- Silverlight Downloads
- 超图iClient 3D 入门程序 - 1
- java oracle 乐观锁,oracle为什么默认乐观锁
- python docker自动化_「docker实战篇」python的docker爬虫技术-移动自动化控制工具安卓ADB的使用(15)...
- MATLAB图像处理之二值化以及灰度处理
- 打工人打工魂,打工人上人
- 七夕表白小代码喜欢的拿去
- Python设计模式:抽象工厂模式
- html中怎么让照片变模糊,CSS改变图片由模糊到清晰
- dvwa页面打不开的原因_细看网页打不开的解决办法以及原因细看
- SSH-KeyGen -认证密钥的生成、管理和转换
- c语言编程单片机中的sbit,用sbit定义可位寻址的特殊功能寄存器时的地址转换-51单片机C编程...
- 小程序个人中心页面,模块入口搭建
- SSO - 我们为何需要单点登录系统
- hex文件详解及常用合并方法介绍
- An error occurred uploading to the App Store.
- AssetStudioGUI获取Unity游戏资源
- 机器人的「语料」,如何获取?
热门文章
- 机器学习:数学加强(二)——条件概率、贝叶斯公式、常见分布、协方差、相关系数、切比雪夫不等式、大数定律
- 如何快速将CAD图纸转换成PDF文件?
- 麦吉尔商业与计算机科学,麦吉尔大学与UBC大学那个好考
- 如何下载哔哩哔哩里的视频
- 四、异常(高琪java300集+java从入门到精通笔记)
- 用html画动漫人物,画动漫人物的步骤?
- 知识点 - 快速沃尔什变换
- 联想服务器网卡显示不全,ThinkSystem系列服务器板载1Gb网口及LOM网卡接入100Mb交换机显示无连接...
- sheet(isPresented:onDismiss:content:) (SwiftUI 中文文档手册 教程含源码)
- 计算机配置35%卡住不动了,win7配置更新35%不动怎么回事_win7配置windows update完成35卡住不动了如何解决...