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. react-native run-android error: unknown host service

    D:\rnworkspace\Hello>react-native run-android JS server already running.Running D:\Android\sdk/pl ...

  2. 20170809直接访问功能测试Postman

    20170809直接访问功能测试Postman 1 打开admin账户登录界面,打开F12,登录 admin账户,点击系统管理,用户设置,获得网址http://10.200.44.69:8080/cl ...

  3. Word Add-in 函数调用顺序

    这个图表明的函数的调用顺序,主要代码如下: // MyAddin.cpp : Implementation of DLL Exports. // Note: Proxy/Stub Informatio ...

  4. Variational Approximate Inference

    图模型(Graphical Models)是一个用来表示概率模型的工具.所谓概率模型,也就是在刻画一组随机变量之间的相互关系.图模型就是用来显式地刻画这些变量之间关系的.在 图模型中,每个变量由图中的 ...

  5. JAVA如何调用mysql写的存储过程

    存储过程是干什么的,自己百度,百度上讲的比我讲的好.为什么要用存储过程,这样可以提高效率.废话少说,直接上代码: 首先说一下语法:在mysql中写存储过程 DELIMITER $$ CREATE /* ...

  6. cocos代码研究(7)即时动作子类学习笔记

    理论部分 即时动作是会立即被执行的动作.他们没有持续时间动作(ActionInterval)的持续时间属性.继承自 FiniteTimeAction.被 CallFunc, FlipX, FlipY, ...

  7. TypeScript 基础入门(一)

    1.TypeScript是什么? TypeScript 是 JavaScript 的一个超集,TypeScript 在 JavaScript 的基础上添加了可选的 静态类型 和基于 类 的面向对象编程 ...

  8. CXF创建webservice客户端和服务端

    转 一.CXF的介绍 Apache CXF是一个开源的WebService框架,CXF大大简化了Webservice的创建,同时它继承了XFire的传统,一样可以和spring天然的进行无缝的集成.C ...

  9. iOS 绘图 (UIImage的一些操作)

    UIGraphicsBeginImageContextWithOptions,本文主要在图片类型上下文中对图片进行操作,具体实现的功能:  - 1.生成图片  - 2.绘制图片到视图 - 3.添加水印 ...

  10. 线程等待——CountDownLatch使用

    告警性能优化过程中,遇到如下问题:1. 在数据库计算几十万个实体的KPI值的方差:2. 计算结果进行表格化处理. 这里KPI包含多个Counter的数据库函数运算(比如Decode,AVG等函数),方 ...