题目详见http://acm.hdu.edu.cn/showproblem.php?pid=1069
这个题目的大致意思就是香蕉挂在一定的一定的高度,不同的高度都有香蕉。给猴子很N个箱子,有长宽高,让猴子用这些箱子摞在一起爬到高处吃香蕉,看猴子的智商够不够高,吃到的香蕉多不多。箱子可以翻转,但是一个箱子要想摞在其他箱子上边,必须满足长和宽都要小于底下的箱子。箱子的数目是不限的,只是给出不同的箱子种类。每种箱子可以多次使用。
看到这里,想必对此题有了大致的了解了。箱子虽然无限,但是总类有限。所以每一种箱子,最多只能用3次。因为有长宽的限制,所以只能这样。
怎么做呢?
对于输入的箱子我们怎么保存,长宽高可以调换。虽然无限,每种箱子最多只用3次。而且这三次还有重复的。比如 5 5 6 ,那么翻转一下变成 5 5 6 ,5 6 5 ,5 6 5。5 5 5 变成3个 5 5 5 .可以进行重复的处理,可是我这里就没处理,觉得无伤大雅。不过这是不严谨的态度,要向好的复杂度看齐。如果所有的都是正方体,岂不是浪费了2/3的时间和内存啊。不过在这刷题呢就没在乎这么多,先不管了。。以后再实现。存入3N的数据,数据显然要用结构体来处理。
HDOJ1069 猴子和香蕉【DP】
最新推荐文章于 2021-03-14 20:27:09 发布
本文详细解析了HDOJ1069题目的动态规划解决方案,通过C++编程实现,深入探讨了如何运用动态规划策略来求解猴子抓取香蕉的问题。
摘要由CSDN通过智能技术生成