题目链接:https://www.luogu.org/problemnew/show/P2639
裸的背包问题
#include<bits/stdc++.h>
using namespace std;
int mp[505], dp[50000];
int main()
{
std::ios::sync_with_stdio(false);
int H, n;
while(cin >> H >> n)
{
int i, j;
memset(dp,0,sizeof(dp));
for(i = 0; i < n; i++)
{
cin >> mp[i];
}
for(j = 0; j < n; j++)
{
for(i = H; i >= 0; i--)
{
if(i-mp[j]>=0)
dp[i] = max(dp[i], dp[i-mp[j]]+mp[j]);
}
}
cout << dp[H] << endl;
}
return 0;
}