解题思路:背包
参考代码:
#include <stdio.h> #include <string.h> #include <algorithm> using namespace std; int v,n; int dp[20005]; int w[35]; int main(){ memset(w,0,sizeof(w)); memset(dp,0,sizeof(dp)); scanf("%d%d",&v,&n); for(int i=1;i<=n;i++){ scanf("%d",&w[i]); } for(int i=1;i<=n;i++){ for(int j=v;j>=w[i];j--){ dp[j]=max(dp[j],w[i]+dp[j-w[i]]); } } printf("%d",v-dp[v]); return 0; }
0.0分
17 人评分