紫书上动态规划第二道例题。
这道题其实就是求DAG最长路,而且是无固定源点和终点的,基本上套用紫书上那种格式就行。
这道题难在如何表示。
这道题其实就是一个(len,wide,high)立方体可以拆成三个来看,所以直接造三种状态出来就好了,一个高为high,一个高为len,一个高为wide。
由于是要求下一个的长和宽必须严格小于当前的长和宽,我们先把这些都排序存起来,小的和小的比较,大的和大的比较可以剩下很多麻烦。
剩下的就是改一改DAG求最长路的代码,d【i】【j】表示第i个立方体的第j个状态可以造出的最大高度。
代码如下:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include