UVA 437 The Tower of Babylon(最长上升子序列)
来源:互联网 发布:淘宝微博 编辑:程序博客网 时间:2024/06/06 05:02
题目大意:输入若干种立方体(每种若干个),然后将立方体堆成一个塔,要求接触的两个面下底面的长宽分别严格大于上底面,求塔的最大高度。
解析:将每种立方体的各种摆放形式均视为不同的立方体,并存起来。再将所有立方体按照下底面的面积从小到大排序(因为在塔上面的立方体的底面积一定比下面的小),然后求该序列的最大上升子序列的高度。
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N = 35 * 3;struct Node {int x,y,z;}box[N];int dp[N];bool cmp(Node a,Node b) {if(a.x != b.x) {return a.x < b.x;}else {return b.y < b.y;}}int main() {int n,cas = 1;int l[3];while(scanf("%d",&n) != EOF && n) {for(int i = 0; i < n*3; i += 3) {scanf("%d%d%d",&l[0],&l[1],&l[2]);sort(l,l+3);box[i].x = l[0];box[i].y = l[1];box[i].z = l[2];box[i+1].x = l[0];box[i+1].y = l[2];box[i+1].z = l[1];box[i+2].x = l[1];box[i+2].y = l[2];box[i+2].z = l[0];}int maxx = 0;sort(box,box+n*3,cmp);memset(dp,0,sizeof(dp));for(int i = 0; i < n*3; i++) {dp[i] = box[i].z;for(int j = 0; j <= i; j++) {if(box[i].x > box[j].x && box[i].y > box[j].y) {dp[i] = max(dp[i],dp[j] + box[i].z);}}if(dp[i] > maxx) {maxx = dp[i];}}printf("Case %d: maximum height = %d\n",cas++,maxx);}return 0;}
0 0
- UVA 437 The Tower of Babylon(最长上升子序列)
- UVA 437The Tower of Babylon (dp + DAG最长序列)
- UVa 437 The Tower of Babylon(DP 最长条件子序列)
- UVA 10051 Tower of Cubes(最长上升子序列)
- uva 10051 Tower of Cubes (最长上升子序列)
- uva 437 The Tower of Babylon(DAG最长路)
- uva 437 - The Tower of Babylon(DAG最长路)
- UVA 437 - The Tower of Babylon(DAG最长路)
- uva 437 The Tower of Babylon(动态规划 嵌套矩形问题最长路)
- UVA 437 The Tower of Babylon (DAG上的无源最长路 or LIS)
- uva 437 The Tower of Babylon
- UVa 437 - The Tower of Babylon
- UVA 437 The Tower of Babylon
- UVa 437 - The Tower of Babylon LIS
- uva 437 - The Tower of Babylon
- UVa 437 - The Tower of Babylon
- UVa 437 - The Tower of Babylon
- UVa 437 - The Tower of Babylon
- hiho一下 第二十六周---最小生成树一·Prim算法
- 黄淮学院CSDN高校俱乐部2014圣诞晚会
- Python监控CPU情况
- C语言产生随机数
- JavaScript的IE兼容性
- UVA 437 The Tower of Babylon(最长上升子序列)
- Zigbee的学习
- 最近股市比较危险了.
- json和xml数据格式基于ajax的实现方式
- 用Js的eval解析JSON中的注意点
- 第四周编程作业2 念整数
- java与C#发展
- python安装和学习-最后推荐winpython
- C++ Primer 关联容器--容器的综合应用:文本查询程序