1 solutions
-
1
#include<bits/stdc++.h> using namespace std; int v,n; int s[105]; int dp[20005]={}; int main(){ cin>>v>>n; for(int i=1;i<=n;i++) cin>>s[i]; for(int i=1;i<=n;i++) for(int m=v;m>=0;m--) if(m<s[i]) dp[m]=dp[m]; else dp[m]=max(dp[m],dp[m-s[i]]+s[i]); cout<<v-dp[v]<<"\n"; return 0; }
特殊的01背包
- 1
Information
- ID
- 780
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- # Submissions
- 23
- Accepted
- 13
- Uploaded By