题解 | #点菜问题#
点菜问题
https://www.nowcoder.com/practice/b44f5be34a9143aa84c478d79401e22a
#include <bits/stdc++.h>
#define MAX 1000
using namespace std;
int main() {
int dp[MAX], w[MAX], v[MAX];
int C, N; //C报销额度,N数量
while (cin >> C >> N) {
for (int i = 0; i < N; i++)
cin >> w[i] >> v[i];
memset(dp, 0, sizeof(dp));
for (int i = 0; i < N; i++)
for (int j = C; j >= w[i]; j--) {
dp[j] = max(dp[j - w[i]] + v[i], dp[j]);
}
cout << dp[C] << endl;
}
}
