【题目描述】
一个旅行者有一个最多能装 M公斤的背包,现在有 n 件物品,它们的重量分别是W1,W2,...,Wn,它们的价值分别为C1,C2,...,Cn,求旅行者能获得最大总价值。
【输入格式】
第一行:两个整数,M(背包容量,M<=200)和N(物品数量,N<=30);
第2..N+1行:每行二个整数Wi,Ci,表示每个物品的重量和价值。
【输出格式】
仅一行,一个数,表示最大总价值。
#include<bits/stdc++.h>
using namespace std;
int n, m;
int f[10100];
int main()
{
cin >>m >> n;
for (int i=1; i <= n; i ++)
{
int v, w;
cin >> v >> w;
for (int j=m; j >= v; j--)
f[j] = max(f[j], f[j-v] + w);
}
cout << f[m] << endl;
return 0;
}