https://vjudge.net/problem/UVA-437

这道题和HDU的Monkey and Banana完全一样。

 #include<iostream>
#include<algorithm>
using namespace std; struct node
{
int l, w, h;
}v[]; int dp[]; //存储第i块立方体为底时的最大高度 bool cmp(node x, node y) //sort的排序方法,按长从小到大排序
{
/*
if (x.l < y.l) return 1;
else if (x.l == y.l && x.w < y.w) return 1;
else return 0;
*/ if (x.l == y.l) return x.w < y.w;
return x.l < y.l;
} int main()
{
//freopen("D:\\txt.txt", "r", stdin);
int n, a, b, c;
int kase = ;
while (cin >> n && n)
{
int k = ;
for (int i = ; i < n; i++)
{
cin >> a >> b >> c;
v[k].l = a; v[k].w = b; v[k++].h = c;
v[k].l = a; v[k].w = c; v[k++].h = b;
v[k].l = b; v[k].w = a; v[k++].h = c;
v[k].l = b; v[k].w = c; v[k++].h = a;
v[k].l = c; v[k].w = a; v[k++].h = b;
v[k].l = c; v[k].w = b; v[k++].h = a;
}
sort(v, v + k, cmp);
int maxn = ;
for (int i = ; i < k; i++)
{
dp[i]=v[i].h;
for (int j = ; j < i; j++)
{
if (v[j].l < v[i].l && v[j].w < v[i].w) //如果第j块能搭在第i块上
{
dp[i] = max(dp[i], dp[j] + v[i].h);
}
}
if (dp[i]>maxn) maxn = dp[i];
}
cout << "Case " << ++kase << ": maximum height = " << maxn << endl;
}
return ;
}

UVa 437 巴比伦塔的更多相关文章

  1. uva 437 巴比伦塔(DAG上dp)

    巴比伦塔 紫书P269 看完紫书,终于可以自己写一个dp了 :) [题目链接]巴比伦塔 [题目类型]DAG上dp &题意: 有n种立方体 n<=30,每种有无穷个,要求选一些立方体摞成一 ...

  2. Uva 437 巴比伦塔 && UVA10003

    要求底面严格小于它下方立方体的长宽,求出最高情况,一块石头可以多次使用 用结构体记录一块石头的三种放置情况,按面积排序. dp[i] = max(dp[i],dp[j] + block[i].high ...

  3. UVA 437 巴比伦塔 【DAG上DP/LIS变形】

    [链接]:https://cn.vjudge.net/problem/UVA-437 [题意]:给你n个立方体,让你以长宽为底,一个个搭起来(下面的立方体的长和宽必须大于上面的长和宽)求能得到的最长高 ...

  4. UVA 437 十九 The Tower of Babylon

    The Tower of Babylon Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Subm ...

  5. uva 437,巴比伦塔

    题目链接:https://uva.onlinejudge.org/external/4/437.pdf 题意:巴比伦塔: 给出n种立方体,一个立方体能放到另一个立方体上,必须满足,底面一定要小于下面的 ...

  6. UVA 437 The Tower of Babylon巴比伦塔

    题意:有n(n≤30)种立方体,每种有无穷多个.要求选一些立方体摞成一根尽量高的柱子(可以自行选择哪一条边作为高),使得每个立方体的底面长宽分别严格小于它下方立方体的底面长宽. 评测地址:http:/ ...

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

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

  8. UVa 437 The Tower of Babylon(经典动态规划)

    传送门 Description Perhaps you have heard of the legend of the Tower of Babylon. Nowadays many details ...

  9. UVa 437 The Tower of Babylon

    Description   Perhaps you have heard of the legend of the Tower of Babylon. Nowadays many details of ...

随机推荐

  1. [LeetCode] 529. Minesweeper_ Medium_ tag: BFS

    Let's play the minesweeper game (Wikipedia, online game)! You are given a 2D char matrix representin ...

  2. Java-二分查找算法

    package com.lym.binarySearch; import java.util.Arrays; /** * 二分查找 * * @author Administrator * */ pub ...

  3. FM/FFM原理

    转自https://tech.meituan.com/deep-understanding-of-ffm-principles-and-practices.html 深入FFM原理与实践 del2z, ...

  4. iOS UI基础-1.0加法计算器

    1.打开Xcode,新建一个项目 2.Single View Application是最适合初学者的模板 3.填写该应用相关信息 4.搭建UI界面 项目创建完毕后,自动帮我们做了很多配置,也自动生成了 ...

  5. html02

    复习:HTML标记 p h1~h6 font table>tr>td ul>li ol>li div span form:input>typy :password rad ...

  6. Dapper Extensions中修改Dialect

    如果是MySql数据库,则修改为:DapperExtensions.DapperExtensions.SqlDialect = new MySqlDialect(); DapperExtensions ...

  7. #C++初学记录(深度搜索#递归)

    深度搜索 走地图的题目是深度搜索里比较容易理解的题目,更深层次的是全排列和七皇后等经典题目,更加难以理解,代码比较抽象. 题目:红与黑 蒜厂有一间长方形的房子,地上铺了红色.黑色两种颜色的正方形瓷砖. ...

  8. arcgis中加载google在线地图

    打开arcmap——文件——arcgis online ——搜索china maps 选择china

  9. linux中的查找命令

    which命令:使用which命令可以看到某个系统命令是否存在,以及执行的到底是哪一个位置上的命令.在PATH指定的路径中进行搜索, 返回第一个搜索结果. which grep /bin/grep   ...

  10. Nature重磅:Hinton、LeCun、Bengio三巨头权威科普深度学习

    http://wallstreetcn.com/node/248376 借助深度学习,多处理层组成的计算模型可通过多层抽象来学习数据表征( representations).这些方法显著推动了语音识别 ...