lw2001 发表于 2019-12-10 18:28

dp中01背包问题的一些问题

对于一个01背包问题,在我已经通二维数组得出了最优解之后,我应该怎么回溯这个解的组成,并把它从大到小输出呢



举个例子
由五本书他们的价格和重量都分别是 1 2 3 4 5 ,
背包容量为十,那我得到最优解 最大价值是10之后,怎么把它的方法输出啊

比如这样
最大价值 10
第5本书
第4本书
第1本书
这个样子的
想请教一下大佬们怎么实现这样的输出
我应该怎么记录他的过程呢??

HighBox 发表于 2019-12-10 21:07

遍历匹配咯

z1390595 发表于 2020-1-13 10:21

如果只是要一组解的话,直接用另一个结构体数组记录前一解是从哪里来的(比如用a,b变量记录是从dp来的,再一个变量c记录第i件有取或者没有),输出解就逆向输出不就行了。如果需要空间换时间的话。
如果空间紧张的话大概还是搜索剪枝吧。
页: [1]
查看完整版本: dp中01背包问题的一些问题