本实验报告问题描述:
0-1 背包问题:给定 n 种物品和一个容量为 C 的背包,物品 i 的重量是 wi,其价值为 vi 。应该如何选择装入背包的物品,使得装入背包中的物品的总价值最大?
背包问题:给定 n 种物品和一个容量为 C 的背包,物品 i 的重量是 wi,其价值为 vi 。在选择物品i装入背包时,可以选择i的一部分,而不一定要全部装入。应该如何选择装入背包的物品,使得装入背包中的物品的总价值最大?
Prim算法:一个无向连通图的生成树是一个极小连通子图,它包括图中全部的结点,并且尽可
红色代表错误或者特别注意
蓝色代表修复后的正确代码
黄色表示变量
一.问题分析
1.问题的性质
回溯法是对树的深度遍历,需要用到递归.
分支限界法是对树的广度遍历,需要用到数据结构.而且每个状态都是一个数据结构实体
状态应该表示如下几个属性:
int cp //已放入物品总价值
int rp //剩余物品的总价值
int rw //剩余容量
int id //物品序号,比如某结点id=0,拓展当前结点时就要检查物品0 放入/不放入.
int[] x //当前解向量