博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDOJ 1069 Monkey and Banana 解题报告
阅读量:4984 次
发布时间:2019-06-12

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

    动态规划,最大上升子序列和。不同的是给的是长方体。

    为了方便处理,笔者直接将每个长方体当做三个长方体处理,每个长方体的长大于等于宽。然后以长为主,宽为辅排序。

    然后就和之前的那道FatMouse‘s speed一样了,当符合条件是,更新最大值。

    下面是笔者第一次AC的代码:

#include 
#include
using namespace std;struct State{ int length; int width; int height; int sum;} s[100];int cmp(const State& a,const State& b){ if(a.length!=b.length) return (a.length
>n && n) { for(i=0;i
>a>>b>>c; if(a==b && b==c) s[i].height=s[i].length=s[i].width=s[i].sum=a; else { s[i+2].length=s[i+1].height=s[i].length=a>b?(a>c?a:c):(b>c?b:c); s[i+2].width=s[i+1].width=s[i].height=a
s[j].length && s[i].width>s[j].width && s[i].sum

    然后,笔者又把代码精简了一点点(笔者非常喜欢短一点。。。测试AC了):

#include 
#include
using namespace std;struct State{ int length; int width; int height; int sum;} s[100];int cmp(const State& a,const State& b){ if(a.length!=b.length) return (a.length
>n && n) { for(i=0;i
>a>>b>>c; if(a==b && b==c) s[i].height=s[i].length=s[i].width=s[i].sum=a; else { s[i+2].length=s[i+1].sum=s[i+1].height=s[i].length=a>b?(a>c?a:c):(b>c?b:c); s[i+2].width=s[i+1].width=s[i].sum=s[i].height=a
s[j].length && s[i].width>s[j].width) if(max<(s[i].sum=s[j].sum+s[i].height)) max=s[i].sum; cout<<"Case "<
<<": maximum height = "<
<

 

转载于:https://www.cnblogs.com/IT-BOY/archive/2013/02/04/2892326.html

你可能感兴趣的文章
Catalyst 3850 升级-1
查看>>
static
查看>>
python模块之time模块
查看>>
Unity3D NGUI自适应屏幕分辨率(2014/4/17更新)
查看>>
《暗黑世界V1.6》服务器代码执行图
查看>>
ajax学习之1-登录验证之-xml
查看>>
谁用过RED5在android实时播放视频?
查看>>
POJ--2533 Longest Ordered Subsequence
查看>>
Mysql的使用,常用的SQL语句
查看>>
轻松搞定UITableView中的键盘处理
查看>>
bzoj2882: 工艺
查看>>
Shell中的${},##和%%的使用
查看>>
WPF 四种样式
查看>>
Windows8.1 .NET Framework 3.5 离线安装
查看>>
CodeForces-455A Boredom
查看>>
Jenkins Pipeline+sonar构建质量平台
查看>>
特征工程
查看>>
Linux下JNI的使用
查看>>
Framework层Ril控制流程分析
查看>>
【mysql】编码问题
查看>>