c++背包九讲之二维费用背包问题

一、背包九讲总述

关于动态规划问题,最典型的就是背包九讲,先理解背包九讲后再总结关于动态规划的问题

1、01背包问题
2、完全背包问题
3、多重背包问题
4、混合背包问题
5、二维费用的背包问题
6、分组背包问题
7、背包问题求方案数
8、求背包问题的方案
9、有依赖的背包问题
往前四篇博文已经介绍了前四个问题,有需要的同学可以看一下!!

二、二维费用背包问题
二维费用的背包问题是指:对于每件物品,具有两种不同的费用,选择这件物品必
须同时付出这两种费用。对于每种费用都有一个可付出的最大值(背包容量)。问怎样
选择物品可以得到最大的价值。

故:对于01背包问题、完全背包问题和多重背包问题的方法都完全可以使用,只不过增加一个代价

接下来,01背包问题为例进行解答:

题目描述:
有 N 件物品和一个容量是 V 的背包,背包能承受的最大重量是 M。每件物品只能用一次。体积是 v[i],重量是 w[i],价值是 money[i]。
求解将哪些物品装入背包,可使物品总体积不超过背包容量,总重量不超过背包可承受的最大重量,且价值总和最大。输出最大价值。
输入格式 :
第一行3个整数,n,C, W,用空格隔开,分别表示物品件数、背包容积和背包可承受的最大重量。
接下来有 n 行,每行三个整数 v[i],w[i],money[i],用空格隔开,分别表示第 i 件物品的体积、重量和价值。
输出格式 :
输出一个整数,表示最大价值。

#include
#include 
using namespace std;
int C

你可能感兴趣的:(c++背包九讲之二维费用背包问题)