今天,讲一道dp的例题:
题目:
P1060 [NOIP2006 普及组] 开心的金明 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
这道题,其实就是在完全背包问题上的改版。
完全背包代码请看这儿:
这道题的价值只不过是v*w罢了。
直接上代码:
#include <bits/stdc++.h>
using namespace std;
const int N = 30010;
int n, m;
int f[N];
int main(){
cin >> m >> n;
for (int i = 0; i < n; i ++ ){
int v,w;
cin >> v >> w;
for (int j = m; j >= v; j -- ){
f[j] = max(f[j],f[j - v] + v * w);
}
}
cout << f[m];
return 0;
}
大家下次想我讲什么内容呢?
麻烦做一个投票: