60分求调
查看原帖
60分求调
725397
zhangchengyi356535楼主2023/2/27 19:24
#include <bits/stdc++.h>
using namespace std;
int v,n,a[40],dp[40][20010];
int main(){
   cin>>v>>n;
   for(int i=1;i<=n;i++){
      cin>>a[i];
   }
   for(int i=1;i<=n;i++){
      for(int j=0;j<=v;j++){
         if(a[i]>v-dp[i-1][j]){
           dp[i][j]=dp[i-1][j];
         }
         else{
           dp[i][j]=max(dp[i-1][j],dp[i-1][j-a[i]]+a[i]);
         }
      }
   }
   cout<<v-dp[n][v]<<endl;
   return 0;
}
2023/2/27 19:24
加载中...