【题目要求】
给定n种物品和一个背包。物品i的质量为Wi,其价值为Vi,背包的最大载重量为C.编写一个程序,求解如何装载背包中的物品,使得装入背包中的物品总价值最大。
题目分析:
0-1背包问题是一个经典的算法问题。解决0-1背包的方法很多,一般常用的方法包括:动态规划、分支界限、回溯法等。在这里介绍一种比较容易理解的方法——回溯法。
如果把这n种物品的取舍状态用一个向量表示{X1,X2……Xn},其中Xi只有两种可能的取值1或0.当Xi=1时,表明第i个物品装入背包,Xi=0时,表明不将第i个物品装入背包。那么这个0-1背包问题就可以形式化地描述为: