【HDOJ】1069 Monkey and Banana
DP问题,我是按照边排序的,排序既要考虑x也要考虑y,同时在每个面中,长宽也要有序。还有注意状态转移,当前高度并不是之前的最大block叠加的高度,而是可叠加最大高度+当前block高度或者是当前block高度。最后,n^2的复杂度。
#include <stdio.h>
#include <stdlib.h> #define MAXTYPE 33
#define MAXNUM 3*MAXTYPE typedef struct {
int x, y, z;
} rect; rect rects[MAXNUM];
int heights[MAXNUM]; int comp(const void *a, const void *b) {
if ( ((rect *)a)->x - ((rect *)b)->x )
return ((rect *)a)->x - ((rect *)b)->x;
else
return ((rect *)a)->y - ((rect *)b)->y;
} void addOth(int i) {
int tmp;
int x = rects[i].x;
int y = rects[i].y;
int z = rects[i].z; //
tmp = (y<z) ? y:z;
rects[i+].x = tmp;
rects[i+].y = y+z-tmp;
rects[i+].z = x; //
tmp = (x<z) ? x:z;
rects[i+].x = tmp;
rects[i+].y = x+z-tmp;
rects[i+].z = y; //
tmp = (x<y) ? x:y;
rects[i].x = tmp;
rects[i].y = x+y-tmp;
} int mymax(int a, int b) {
return a>b ? a:b;
} int main() {
int n, total;
int i, j, tmp;
int case_n = ; while (scanf("%d", &n)!=EOF && n) {
case_n ++; for (i=; i<*n; i=i+) {
scanf("%d %d %d", &rects[i].x, &rects[i].y, &rects[i].z);
addOth(i);
} total = *n;
qsort(rects, total, sizeof(rect), comp); /*
for (i=0; i<total; ++i)
printf("%d: %d, %d, %d\n", i, rects[i].x, rects[i].y, rects[i].z);
*/ heights[] = rects[].z;
for (i=; i<total; ++i) {
tmp = ;
for (j=i-; j>=; --j) {
if (rects[j].x<rects[i].x && rects[j].y<rects[i].y && heights[j]>tmp)
tmp = heights[j];
}
heights[i] = mymax(tmp+rects[i].z, rects[i].z);
} tmp = ;
for (i=; i<total; ++i) {
if (heights[i] > tmp)
tmp = heights[i];
} printf("Case %d: maximum height = %d\n", case_n, tmp);
} return ;
}
【HDOJ】1069 Monkey and Banana的更多相关文章
- 【HDOJ】1512 Monkey King
左偏树+并查集.左偏树就是可合并二叉堆. /* 1512 */ #include <iostream> #include <string> #include <map&g ...
- HDU 1069 Monkey and Banana / ZOJ 1093 Monkey and Banana (最长路径)
HDU 1069 Monkey and Banana / ZOJ 1093 Monkey and Banana (最长路径) Description A group of researchers ar ...
- HDU 1069 Monkey and Banana(转换成LIS,做法很值得学习)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1069 Monkey and Banana Time Limit: 2000/1000 MS (Java ...
- HDU 1069 Monkey and Banana dp 题解
HDU 1069 Monkey and Banana 纵有疾风起 题目大意 一堆科学家研究猩猩的智商,给他M种长方体,每种N个.然后,将一个香蕉挂在屋顶,让猩猩通过 叠长方体来够到香蕉. 现在给你M种 ...
- 【转】Android Monkey 命令行可用的全部选项
常规 事件 约束限制 调试 原文参见:http://www.douban.com/note/257030384/ 常规 –help 列出简单的用法. -v 命令行的每一个 -v 将增加反馈信息的级别. ...
- HDU 1069—— Monkey and Banana——————【dp】
Monkey and Banana Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u S ...
- HDU 1069 Monkey and Banana(二维偏序LIS的应用)
---恢复内容开始--- Monkey and Banana Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ...
- HDU 1069 Monkey and Banana (DP)
Monkey and Banana Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u S ...
- hdu 1069 Monkey and Banana
Monkey and Banana Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
随机推荐
- 客官,您的 Flask 全家桶请收好
http://www.factj.com/archives/543.html Flask-AppBuilder - Simple and rapid Application buil ...
- Java实战之03Spring-01Spring概述
一.Spring概述 1.Spring是什么? Spring是分层的Java SE/EE应用 full-stack轻量级开源框架,以IoC(Inverse Of Control:反转控制)和AOP(A ...
- 09_控制线程_线程睡眠sleep
[线程睡眠] 如果需要让当前正在执行的线程暂停一段时间,并进入阻塞状态,则可以通过调用Thread类的静态方法sleep()方法来实现. sleep()方法有两种重载形式: 1.static void ...
- C语言经典案例
题目:企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%:利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%:20万到40万 ...
- 关于使用工具类org.apache.commons.collections.ListUtils合并List的问题
今天在做项目时,需要将几个List进行合并,于是就用到了apache提供关于List操作的工具类ListUtils,但是在使用的过程中发现一些问题. public static void main(S ...
- easyui 初体验
简介 jQuery EasyUI是一组基于jQuery的UI插件集合体,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面.开发者不需要编写复杂的javas ...
- Jqery之select操作
jquery获取select选择的文本与值 获取select : 获取select 选中的 text : $("#ddlregtype").find("optio ...
- php导出word(可包含图片)
为大家介绍一个 php 生成 导出word(可包含图片)的代码,有需要的朋友可以参考下. 之前介绍过php生成word的例子,只是不能包含图片与链接. 今天 为大家介绍一个 php 生成 导出word ...
- 要成为开发中最牛逼的测试,测试中最牛逼的开发。从今天起学python,写博客。--python基础学习(一)
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:44:40) [MSC v.1600 64 bit (AMD64)] on win32Type & ...
- Chart Style
How to add label to column chart http://blogs.msdn.com/b/delay/archive/2009/07/27/simple-column-labe ...