8.18 二讲背包问题之完全背包

匿名 (未验证) 提交于 2019-12-02 23:55:01

  今天为大家讲解完全背包问题。

  完全背包和01背包的区别便在于完全背包可以无限选取商品,而01背包只可以选取一个,从一维数组的角度来想,01背包从后往前枚举(m到w[i])可以保证每次j空间时只选取该商品选取了一次,避免了重复;而完全背包从前往后枚举(w[i]到m)会把小于m的2*w[i],3*w[i]...k*w[i]都加进来.

为大家放一道例题

题目描述

设有n种物品,每种物品有一个重量及一个价值。但每种物品的数量是无限的,同时有一个背包,最大载重量为M,今从n种物品中选取若干件(同一种物品可以多次选取),使其重量的和小于等于M,而价值的和为最大。

输入

输出

仅一行,一个数,表示最大总价值。

样例输入

10 4 2 1 3 3 4 5 7 9

样例输出

max=12题解代码:
#include<iostream>
using namespace std;
int m,n,dp[205],w[35],c[35];
int main(){











}
 

来源: https://www.cnblogs.com/cxs070998/p/11371089.html

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!