传送门

#include<iostream>
#include<algorithm>
#include<map>
#include<set>
#include<vector>
#include<utility>
#include<list>
#include<deque>
#include<queue>
#include<stack>
#include<string>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cctype>
using namespace std;typedef long long LL;           //数据太大了记得用LL,还有把INF也得换
typedef pair<LL, LL> P;const int maxn = 1e7+10;        //cf数组最多差不多是这么多,1e8就会段错误
const int V_MAX = 800 + 10;
const int mod = 10007;
const int INF = 0x3f3f3f3f;     //如果数据范围为long long,记得把INF的值换了
const double eps = 1e-6;        //eps开太小二分容易死循环,所以直接来个100次循环就好了//多组输入时,maxn太大,用memset()会超时,血的教训;struct rec{int c, k, h;rec() {}rec(int cc, int kk, int hh) : c(cc), k(kk), h(hh) {}bool operator < (const rec &b) const {if(c != b.c) return c > b.c;else return k > b.k;}
};int n, kase;
vector<rec> arr;//dp[i]表示以arr[i]结尾,最高的高度
//dp[i] = max(dp[i], dp[j] + arr[i]);void solve() {arr.clear();for(int i = 0; i < n; i++) {int a, b, c;cin >> a >> b >> c;arr.push_back(rec(a, b, c));arr.push_back(rec(a, c, b));arr.push_back(rec(b, a, c));arr.push_back(rec(b, c, a));arr.push_back(rec(c, a, b));arr.push_back(rec(c, b, a));}sort(arr.begin(), arr.end());int cnt = arr.size();int dp[cnt], ans = 0;for(int i = 0; i < cnt; i++) {dp[i] = arr[i].h;for(int j = 0; j < i; j++) {if(arr[i].c < arr[j].c && arr[i].k < arr[j].k) dp[i] = max(dp[i], arr[i].h + dp[j]);}ans = max(dp[i], ans);}cout << "Case " << ++kase << ": " << "maximum height = " << ans << endl;
}int main()
{ios::sync_with_stdio(false);           //关了流同步就别用c的输入//freopen("D:\\in.txt", "r", stdin);while(cin >> n && n) { solve();}return 0;
}

HDU 1069 Monkey and Banana相关推荐

  1. HDU 1069 Monkey and Banana 最长上升子序列进阶(动态规划)

    HDU 1069(动态规划) Monkey and Banana Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ...

  2. HDU 1069 Monkey and Banana(简单图解,经典DP,最大上升子序列变形)

    题目链接 今天做的第二题,感觉比较经典,详细记录一下吧! Monkey and Banana Time Limit: 2000/1000 MS (Java/Others) Memory Limit: ...

  3. 三维最长上升子序列问题——HDU 1069 Monkey and Banana

    题目: A group of researchers are designing an experiment to test the IQ of a monkey. They will hang a ...

  4. hdu 1069 Monkey and Banana (LIS)

    Problem - 1069 随便找到的一道题目. 题意是给出一些的长方体,长方体可以用任意次数,可以任意翻转.如果一个长方体可以叠在另一个长方体上,条件是这个长方体的长和宽严格小于另一个长方体的长和 ...

  5. hdu(1069)——Monkey and Banana(LIS变形)

    题意: 如今给你n个石块,然后它由坐标来表示(x,y,z).可是它能够有不同的方法,也就是说它的三个坐标能够轮换着来的. 石块的数量不限,可是每次都必须保持上底面的长和宽严格递减,然后问你用这些石块所 ...

  6. hdu 1069 Monkey and Banana 【动态规划】

    题目 题意:研究人员要测试猴子的IQ,将香蕉挂到一定高度,给猴子一些不同大小的箱子,箱子数量不限,让猩猩通过叠长方体来够到香蕉. 现在给你N种长方体, 要求:位于上面的长方体的长和宽  要小于  下面 ...

  7. hdu 1069 Monkey and Banana dp

    题意:给你n种个长方体,告诉你每种长方体的长,宽,高,并且每种长方体个数不限 问:把它们堆起来的最大高度 限制条件:上面一个长方体a的底面积,必须比它下面一个长方体b的底面积大,而且,a的底面的长宽也 ...

  8. HDUOJ 1069 Monkey and Banana

    HDUOJ 1069 Monkey and Banana 题目链接 Problem Description A group of researchers are designing an experi ...

  9. HDOJ 1069 Monkey and Banana

    1:每一组X,Y,Z对应3个立方体 2:按面积从小到大DP Monkey and Banana Time Limit: 2000/1000 MS (Java/Others)    Memory Lim ...

最新文章

  1. hadoop2.610集群配置(包含HA和Hbase )
  2. char怎么比较_C语言的 main 函数到底怎么写才是对的?
  3. win8 C盘空间不足的几种解决方法
  4. 【数字信号处理】线性常系数差分方程 ( 线性常系数差分方程 与 边界条件 总结 ) ★★★
  5. 【云上ELK系列】Logstash迁移Elasticsearch数据方法解读
  6. 情怀满满 新一代观影神器坚果1895
  7. 从零开始学习前端开发 — 15、CSS3过渡、动画
  8. 高性能队列--Disruptor
  9. 计算机考试dw操作题,职称计算机考试Dreamweaver训练题
  10. 反正切函数的应用解题报告
  11. 皇帝成长计划html文件打不开,伯爵皇帝成长计划解决存档问题XP/win7/win8适用
  12. 如果是有意隐藏,请使用关键字 new。
  13. 关于电脑外设键盘的讲解
  14. vuex的使用说明(个人专用)
  15. 创建一个Spring Boot项目
  16. 2013,手游迎首轮大洗牌,小团队如何存活
  17. WIN10 查看隐藏进程并强制终止进程
  18. 腾讯要AI in All:西部世界导演和腾讯COO刚刚一起聊了聊人为什么要活着
  19. 存储区域网络将占下一代数据存储市场的 7%
  20. Python中级 —— 07标准库

热门文章

  1. APP上架到各大应用商店指南
  2. ajax 报错 Content-Type is not allowed by Access-Control-Allow-Headers in preflight respon
  3. ps画画模糊笔刷_用ps污点画笔修复工具讲图片变成朦胧效果
  4. 飞书从个性到共性,企业微信从共性到个性
  5. 体验在终端——参加2012年移动开发者大会有感
  6. Python 多进程与数据库连接池配合同时取出数据进行处理
  7. JS实现刷新_重新加载页面
  8. [0x7FFE1E17E050] ANOMALY: meaningless REX prefix used cmd窗口activate报错
  9. @Vaild注解使用详解
  10. 使用python-docx实现对word文档里的字符串、图片批量替换