完全背包简介
题目描述:
给出N个物品(一个物品可以选择多次,没有限制),背包最大承重为M,每个物品有一个重量w,一个价值v。如何选择才能在重量不超过M的情况下,使选择的物品的价值总和最大。
输入格式:
第一行:是两个正整数N,M。
第2 ~ (n + 1)行:每行两个正整数w和v。
输出格式:
一个整数,为最大价值总和是多少。
输入样例:
6 12
4 8
6 10
2 6
2 3
5 7
1 2
输出样例:
36
解决方法
完全背包与零一背包非常相似。只不过零一背包中一个物品,要么选一次要么不选。而完全背包选择的次数是没有限制的。
注:如果你还没学过零一背包,可以去此网址先学习一下https://blog.youkuaiyun.com/SkeletonKing233/article/details/94893608
那么这该怎么办呢?还记得零一背包那篇文章中,在一维数组解法模块中我写到过的后效性吗?零一背包中我们为了避免多选而采取从m到w[i]倒着循环这种方式&#