题源:https://www.luogu.org/problem/P2871
0-1背包模板题
int n, m;
int c[3500], w[3500];
int dp[20000] = {0};
int main() {
read(n), read(m);
for (int i = 1; i <= n; i++) {
read(c[i]), read(w[i]);
}
for (int i = 1; i <= n; i++) {
for (int j = m; j >= 0; j--) {
if(j + c[i] <= m){
dp[j + c[i]] = max(dp[j + c[i]], dp[j] + w[i]);
}
}
}
write(dp[m]);
return 0;
}