题意:
见题。
题解:
简单dp。
#include<iostream>
#include<cstring>
using namespace std;
int n,v,c[500],w[500],dp[45000];
int main()
{
memset(dp,0,sizeof(dp));
cin>>v>>n;
for(int i=1;i<=n;i++){cin>>w[i];}
for(int i=1;i<=n;i++){
for(int j=v;j>=w[i];j--){
if(dp[j-w[i]]+w[i]>dp[j])dp[j]=dp[j-w[i]]+w[i];
}
}
cout<<dp[v]<<endl;
}