问题可以描述为:给定一组共 n 个物品,每种物品都有自己的重量 wi, i=1~n 和价值 vi, i=1~n,在限定的总重量(背包的容量 C)内,如何选择才能使得选择物品的总价值之和最高。选择最优的物品子集放置于给定背包中,最优子集对应 n 元解向量(x1,…xn),
为方便调试,采用文件输入,标准输出(或文件输出也可)的形式。数据输入的格式如下:每组测试数据
包含 n+1 行,第 1 行为 C 和 n,表示背包容量为 C 且有 n 个物品,接下来 n 行为这 n 个物品的重量 wi 和价值vi。背包容量和物品重量都为整数。n, C , wi, vi 范围如上所述。
输出两行。第一行为所选物品的最大价值之和,第二行后为装入背包的物品所对应的 n 元最优解向量(x1,…xn), xi∈{0 或1},每行以"i xi"形式输出。
1