二维背包费用问题

二维背包费用问题

NASA的食物计划 引入

所谓二维背包费用就是和一维背包一样的遍历

不过遍历的for语句多了一个而已

key code

const int N=60;
int n,m;
int H,T;
int h[N],t[N],k[N];
int dp[500][500];
void solve(){
	//try it again.
	cin>>H>>T;
	cin>>n;
	up(1,n){
		cin>>h[o]>>t[o]>>k[o];
	}
	fup(i,1,n){
		fdn(j,H,h[i]){
			fdn(w,T,t[i]){
				dp[j][w]=max(dp[j][w],dp[j-h[i]][w-t[i]]+k[i]);
			}
		}
	}
	cout<<dp[H][T]<<endl;
}

同样的模板题还有一个

8. 二维费用的背包问题 - AcWing题库

上面的代码改一下输入 n 的顺序和数据范围就可以通过

posted @ 2023-03-12 00:35  liangqianxing  阅读(34)  评论(0)    收藏  举报