http://acm.hdu.edu.cn/showproblem.php?pid=1069

题目大意

一群研究员在研究猴子的智商(T T禽兽啊,欺负猴子!!!),他们决定在房顶放一串香蕉,并且给猴子n种砖块。

砖块长宽高分别为xyz,每一种可以取任意个,并且他们可以随意的摆放。

然后要求堆叠起来的砖块上面的必须严格小于下面的。

求最大可以堆叠的高度。

思路:

转化为LIS问题,把每一种摆放方法如(10,20,30)(可以以20 30 作为底,10作为高)都放进数组,然后就是求最大上升子序列。

#include<cstdio>
#include<algorithm>
using namespace std;
const int MAXN=200;
struct data
{
int x,y;
int h;
}a[MAXN];
bool operator <(const data &a,const data &b)
{
return a.x<b.x;
}
int main()
{
int n;
int kase=1;
while(scanf("%d",&n),n)
{
int len=0;
int x,y,z;
for(int i=0;i<n;i++)
{
scanf("%d%d%d",&x,&y,&z);
a[len].x=x; a[len].y=y; a[len++].h=z;
a[len].x=x; a[len].y=z; a[len++].h=y;
a[len].x=y; a[len].y=x; a[len++].h=z;
a[len].x=y; a[len].y=z; a[len++].h=x;
a[len].x=z; a[len].y=x; a[len++].h=y;
a[len].x=z; a[len].y=y; a[len++].h=x;
} sort(a,a+len); int dp[MAXN];
for(int i=0;i<len;i++)
{
dp[i]=a[i].h;
int temp=0;
for(int j=0;j<i;j++)
{
if(a[i].x>a[j].x && a[i].y >a[j].y)
temp=max(temp,dp[j]);
}
dp[i]+=temp;
}
int ans=0;
for(int i=0;i<len;i++)
ans=max(ans,dp[i]); printf("Case %d: maximum height = %d\n",kase++,ans);
} return 0;
}

最新文章

  1. 《Linux内核设计与实现》课本第十八章自学笔记——20135203齐岳
  2. python 中的高级函数filter()
  3. 转载-V.I.Arnold, beyond a mathematician
  4. [转]Ionic – Mobile UI Framework for PhoneGap/Cordova Developers
  5. [Java] Java 打包成jar包 和 解压jar包
  6. VMware 虚拟机网络 组网问题
  7. 初步认知MySQL metadata lock(MDL)
  8. mplayer windows configure修改
  9. 计算机世界的道(C/ASM)生一(OS),一生二(API),二生万象(MFC/COM)——学包装技术的程序员将来会损失比较大,因为不了解本质,一旦包装过时就会被淘汰
  10. Linux目录文件详解FHS标准(2013.09.05)
  11. js实现数组去重并且显示重复的元素和索引值
  12. zabbix客户端一键安装脚本(主动模式监控)
  13. Android存储之SQLite数据库
  14. T-SQL常见基础疑点问答总结
  15. reduceByKey和groupByKey区别与用法
  16. Codeforces Round #429 (Div. 2)
  17. Python Flask 多环境配置
  18. leetcode263
  19. 进程间通信IPC -- 管道, 队列
  20. 安装AndroidJDK的坑

热门文章

  1. Oracle APEX 4.2公布RESTful Webservice
  2. redmine-bug 问题修改流程
  3. eclipse- 智能提示设置
  4. 在IE中opacity透明度
  5. 前端项目中常用es6知识总结 -- let、const及数据类型延伸
  6. 解决XCODE配置LLVM环境出现的问题
  7. Android学习笔记之ViewFlipper
  8. js原生代码实现鼠标拖拽(超简单)
  9. vue 键盘回车事件导致页面刷新的问题,路由多了一个问号
  10. 【例题 7-8 UVA - 10603】Fill