完全背包问题
提交数: 1259, 通过率: 20.81%, 平均分: 60.37
题目描述:
设有 \( N \) 种物品,每种物品有一个重量及一个价值。但每种物品的数量是无限的,同时有一个背包,最大载重量为 \( M \) ,今从 \( N \) 种物品中选取若干件(同一种物品可以多次选取),使其重量的和小于等于 \( M \) ,而价值的和为最大。
输入格式:
第一行:两个整数,\( M \) ( 背包容量 ) 和 \( N \) ( 物品数量 );
第 \( 2 \dots N+1 \) 行:每行二个整数 \( W_i, C_i \) ,表示每个物品的重量和价值。
输出格式:
仅一行,一个数,表示最大总价值。
数据范围:
\( M \le 50000 \) , \( N \le 20000 \)
样例输入:
10 4 2 1 3 3 4 5 7 9
样例输出:
max=12
提示:
规模很大,\( 50000 \times 20000 = 10 \) 亿,要注意使用贪心优化,把没用物品去除。
时间限制: 1000ms空间限制: 128MB