博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【HDOJ】1069 Monkey and Banana
阅读量:7292 次
发布时间:2019-06-30

本文共 1391 字,大约阅读时间需要 4 分钟。

DP问题,我是按照边排序的,排序既要考虑x也要考虑y,同时在每个面中,长宽也要有序。还有注意状态转移,当前高度并不是之前的最大block叠加的高度,而是可叠加最大高度+当前block高度或者是当前block高度。最后,n^2的复杂度。

#include 
#include
#define MAXTYPE 33#define MAXNUM 3*MAXTYPEtypedef 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; // 2 tmp = (y
b ? a:b;}int main() { int n, total; int i, j, tmp; int case_n = 0; while (scanf("%d", &n)!=EOF && n) { case_n ++; for (i=0; i<3*n; i=i+3) { scanf("%d %d %d", &rects[i].x, &rects[i].y, &rects[i].z); addOth(i); } total = 3*n; qsort(rects, total, sizeof(rect), comp); /* for (i=0; i
=0; --j) { if (rects[j].x
tmp) tmp = heights[j]; } heights[i] = mymax(tmp+rects[i].z, rects[i].z); } tmp = 0; for (i=0; i
tmp) tmp = heights[i]; } printf("Case %d: maximum height = %d\n", case_n, tmp); } return 0;}

 

转载于:https://www.cnblogs.com/bombe1013/p/3582323.html

你可能感兴趣的文章
Centos6.6安装mysql记录
查看>>
OCP读书笔记(5) - 使用RMAN创建备份
查看>>
java的接口和抽象类区别
查看>>
能够提高PHP的性能的一些注意事项
查看>>
020-请你说一说app测试的工具
查看>>
软件测试2019:第五次作业—— 安全测试(含安全测试工具实验)
查看>>
SSM框架搭建总结(2)
查看>>
Python学习(19)正则表达式
查看>>
PHP中空字符串、0、null、empty和false之间的关系
查看>>
【深度学习篇】---CNN和RNN结合与对比,实例讲解
查看>>
201771010126 王燕《面向对象程序设计(Java)》第十二周学习总结
查看>>
XAML实例教程系列 - 资源(Resources)
查看>>
LWIP互联网资料汇总
查看>>
外贸术语
查看>>
网络传输流量控制策略小结
查看>>
上传大文件
查看>>
Mybatis面试集合(转)
查看>>
分布式系统的完整介绍(一)
查看>>
考点1
查看>>
Asp.net 程序连接orcle如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,...
查看>>