欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

P1855 榨取kkksc03

程序员文章站 2022-07-16 09:39:05
...

题目链接:P1855 榨取kkksc03

P1855 榨取kkksc03

多维01背包:

在一维01背包的基础上,多加一维就可以

代码如下:

#include<iostream>

using namespace std;

const int N = 210;

/*

*/

int n,m,t;
int f[N][N],v[N],c[N],w[N];

int main() {
	cin >> n >> m >> t;
	for(int i = 1; i <= n; i ++ ){
		int a,b;
		cin >> a >> b;
		v[i] = a; c[i] = b;
		w[i] = 1;
	}
	for(int i = 1; i <= n; i ++){
		for(int j = m; j >= v[i]; j -- ){
			for(int k = t; k >= c[i]; k -- ){
				f[j][k] = max(f[j][k],f[j - v[i]][k - c[i]] + w[i]);
			}
		}
	}
	cout<<f[m][t]<<endl;									
	return 0;
}

相关标签: 背包dp