题目描述
有一个最多能装m千克的背包,有n块魔法石,它们的重量分别是W1,W2,...,Wn,它们的价值分别是C1,C2,...,Cn。若每种魔法石只有一件,问能装入的最大总价值。
输入格式
第一行为两个整数m和n,以下n行中,每行两个整数Wi,Ci,分别代表第i件物品的重量和价值。
输出格式
输出一个整数,即最大价值。
样例
样例输入
复制8 3
2 3
5 4
5 5
样例输出
复制8
_____________________________________________________________________________
写作不易,点个赞呗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
_____________________________________________________________________________
#include <bits/stdc++.h>
using namespace std;
int n, m;
int f[105];
int w[105], v[105];
int main() {
cin >> m >> n;
for (int i = 1; i <= n; i++) {
cin >> w[i] >> v[i];
for (int j = m; j >= w[i]; j--) {
f[j] = max(f[j], f[j - w[i]] + v[i]);
}
}
cout << f[m];
}