The Tower of Babylon

题意:给你n种石头,长x,宽y,高z,每种石头数目无限,一块石头能放到另一块上的条件是:长和宽严格小于下面的石头。问叠起来的最大高度。

  1. /*
  2. 有些类似“叠箱子”问题,看起来一种砖有无限多个,其实最多只能用到两次。
  3. 说下我的思路吧,一块砖有3个数据,虽然3!=6,但本质上还是只有3种,把这三种都表示出来,使x<=y;这样就有了3n组数据。因为我不会建图,就把这3n组数据再排列一下,使一块砖只能放到它后面的砖之上,而绝不能放到之前的砖上,即按x为一级y为二级升序排列,结合之前的x<=y,就能达到目的了。
  4. */
  5. #include <iostream>
  6. #include <stdio.h>
  7. #include <algorithm>
  8. using namespace std;
  9. typedef struct
  10. {
  11. int arr[];
  12. }Box;
  13. Box a[];
  14. bool cmp(Box a,Box b)
  15. {
  16. if(a.arr[]!=b.arr[])
  17. return a.arr[] < b.arr[];
  18. else if(a.arr[] != b.arr[])
  19. return a.arr[] < b.arr[];
  20. else return a.arr[] < b.arr[];
  21. }
  22. int ok(Box a,Box b)
  23. {
  24. return (a.arr[] < b.arr[] && a.arr[] < b.arr[]);
  25. }
  26. int main()
  27. {
  28. //freopen("Cola.in","r",stdin);
  29. int n,m=,i,j,t,max;
  30. while(cin>>n,n)
  31. {
  32. m++;
  33. for(i = ; i < *n; i += )
  34. {
  35. cin>>a[i].arr[]>>a[i].arr[]>>a[i].arr[];
  36. sort(a[i].arr,a[i].arr+);
  37. a[i+].arr[] = a[i].arr[];
  38. a[i+].arr[] = a[i].arr[];
  39. a[i+].arr[] = a[i].arr[];
  40. a[i+].arr[] = a[i].arr[];
  41. a[i+].arr[] = a[i].arr[];
  42. a[i+].arr[] = a[i].arr[];
  43. }
  44. sort(a,a+*n,cmp);
  45. max = ;
  46. for(i = *n-; i >= ; i--)
  47. {
  48. t = a[i].arr[];
  49. for(j = i+; j < *n; j++)
  50. {
  51. if(ok(a[i],a[j]) && a[i].arr[]+a[j].arr[] > t)
  52. t = a[i].arr[]+a[j].arr[];
  53. }
  54. a[i].arr[] = t;
  55. if(t > max) max = t;
  56. }
  57. printf("Case %d: maximum height = %d\n",m,max);
  58. }
  59. return ;
  60. }

poj2241 The Tower of Babylon的更多相关文章

  1. POJ2241——The Tower of Babylon

    The Tower of Babylon Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2207   Accepted: 1 ...

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

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

  3. UVa 437 The Tower of Babylon

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

  4. UVA 437 十九 The Tower of Babylon

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

  5. UVA437-The Tower of Babylon(动态规划基础)

    Problem UVA437-The Tower of Babylon Accept: 3648  Submit: 12532Time Limit: 3000 mSec Problem Descrip ...

  6. DAG 动态规划 巴比伦塔 B - The Tower of Babylon

    题目:The Tower of Babylon 这是一个DAG 模型,有两种常规解法 1.记忆化搜索, 写函数,去查找上一个符合的值,不断递归 2.递推法 方法一:记忆化搜索 #include < ...

  7. HOJ 1438 The Tower of Babylon(线性DP)

    The Tower of Babylon My Tags Cancel - Seperate tags with commas. Source : University of Ulm Internal ...

  8. uva The Tower of Babylon[LIS][dp]

    转自:https://mp.weixin.qq.com/s/oZVj8lxJH6ZqL4sGCXuxMw The Tower of Babylon(巴比伦塔) Perhaps you have hea ...

  9. [动态规划]UVA437 - The Tower of Babylon

     The Tower of Babylon  Perhaps you have heard of the legend of the Tower of Babylon. Nowadays many d ...

随机推荐

  1. API的理解和使用——全局命令

    全局命令 命令 功能 set 创建键值对 keys 遍历查看所有键 exists 判断一个键是否存在,1存在,0不存在 dbsize 当前数据库中有多少个键 del 删除一个或多个键 expire 设 ...

  2. 窥探 Swift 之别具一格的 Struct 和 Class

    说到结构体和类,还是那句话,只要是接触过编程的小伙伴们对这两者并不陌生.但在Swift中的Struct和Class也有着令人眼前一亮的特性.Struct的功能变得更为强大,Class变的更为灵活.St ...

  3. JDBC超时原理与设置

    抄录自网上,因为担心以后找不到,因此抄录之.感谢分享的大神! 英文原版:http://www.cubrid.org/blog/dev-platform/understanding-jdbc-inter ...

  4. 使用vscode写typescript(node.js环境)起手式

    动机 一直想把typescript在服务端开发中用起来,主要原因有: javascript很灵活,但记忆力不好的话,的确会让你头疼,看着一月前自己写的代码,一脸茫然. 类型检查有利有敝,但在团队开发中 ...

  5. 20145239杜文超 《Java程序设计》第8周学习总结

    20145239 <Java程序设计>第8周学习总结 教材学习内容总结 通用API 日志API 1.java.util.logging包提供了日志功能相关类与接口,使用日志的起点是logg ...

  6. openocd+jlink为mini2440调试u-boot

    需要安装openocd,如果已经安装了系统默认的openocd(默认是0.5.0,版本太低),需要先卸载掉. 在安装前需要安装必需的一些库文件: -dev libusb-1.0-0 automake ...

  7. Android环境下通过C框架层控制WIFI【转】

    本文转载自:https://blog.csdn.net/edw200/article/details/52192631 本人是从事Linux嵌入式开发的,安卓wifi控制在安卓JAVA层已经做得非常成 ...

  8. ESP8266串口模块的基本使用【转】

    本文转载自:http://www.shaoguoji.cn/2017/01/15/ESP8266-usage/ ESP8266是一款超低功耗的UART-WiFi 透传模块,拥有业内极富竞争力的封装尺寸 ...

  9. Mybatis 批量删除 单引号

    MySQL效果: ' AND NAME IN ('policycustom1.xmlx','policycustom.xmlx','policycustom1.xmlx','policycustom. ...

  10. Dat.gui 使用教程

    官方站点:http://workshop.chromeexperiments.com/examples/gui/ Dat.gui 使用教程:Dat.gui 是一个 GUI 组件,他可以为你的 demo ...