P1855 榨取kkksc03
程序员文章站
2022-07-16 09:39:05
...
题目链接: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;
}