AC

键盘敲碎夜深沉,代码如麻乱假真 · 发布于 2024-11-17 · 浏览 451 回复 0
//两个最大->二维背包
#include<bits/stdc++.h>
using namespace std;
int mh,mt,n;
int h[55],k[55],t[55];
int dp[55][405][405];		//前i个,体积,质量
int main(){
	cin>>mh>>mt;		//体积最大值 质量最大值 
	cin>>n;		//食品总数
	for(int i=1;i<=n;i++) cin>>h[i]>>t[i]>>k[i];
	for(int i=1;i<=n;i++){
		for(int j=1;j<=mh;j++){
			for(int g=1;g<=mt;g++){
				if(h[i]<=j&&t[i]<=g)
					dp[i][j][g]=max(dp[i-1][j][g],dp[i-1][j-h[i]][g-t[i]]+k[i]);
				else dp[i][j][g]=dp[i-1][j][g];
			}
		}
	}
	cout<<dp[n][mh][mt]<<endl;
	return 0;
}

全部回复 共 0 条

还没有人回复。往下写第一条。

发表回复