二维费用背包(既有最大体积限制,又多加了一个最大重量限制)

二维费用背包(既有最大体积限制,又多加了一个最大重量限制)_第1张图片

 1:分析状态转移方程式 

二维费用背包(既有最大体积限制,又多加了一个最大重量限制)_第2张图片

2:ACcode: 

#include
using namespace std;
const int N=1e3+10;
int f[N][N],v[N],w[N],m[N];
void solve() {
	int a,b,c;
	cin>>a>>b>>c;
	for(int i=1; i<=a; i++) cin>>v[i]>>m[i]>>w[i];

   //酷似01背包 
	for(int i=1; i<=a; i++) { //物品
		for(int j=b; j>=v[i]; j--) { //体积,倒序
			for(int k=c; k>=m[i]; k--) {//重量,倒序 
				f[j][k]=max(f[j][k],f[j-v[j]][k-m[i]]+w[i]);
			}
		}
	}
	cout<

over~

 

 

你可能感兴趣的:(动态规划,算法,二维费用背包)