原题:https://www.luogu.com.cn/problem/P1049
一道01背包问题,不过比采药要简单,可以根据采药代码改编而成。
代码如下:
#include<bits/stdc++.h>
using namespace std;
int m,n;
int f[20010];
int w[40];
int main(){
cin >> m >> n;
for(int i=1;i<=n;i++)cin >> w[i];
for(int i=1;i<=n;i++){
for(int j=m;j>=w[i];j--){
if(f[j]<f[j-w[i]]+w[i])f[j]=f[j-w[i]]+w[i];
}
}
cout << f[m];
return 0;
}