P2639 [USACO09OCT]Bessie的体重问题
问题入口:
https://www.luogu.org/problem/P2639
我的感想
从这题开始练习dp
AC代码
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main() {
int limit, n;
scanf("%d %d", &limit, &n);
int k[600], dp[46000]; //当前限制下最多可吃干草的重量
memset(dp, 0, sizeof(dp));
for (int i = 0; i < n; i++)
scanf("%d", &k[i]); //每一捆干草的重量
for (int i = 0; i < n; i++){ //dp
for (int j = limit; j >= k[i]; j--){
if (dp[j-k[i]]+k[i] > dp[j])
dp[j] = dp[j-k[i]]+k[i];
}
}
printf("%d\n", dp[limit]);
return 0;
}