0-1背包

 1 #include<iostream>
 2 #include<algorithm>
 3 using namespace std;
 4 
 5 int select(int values[],int n,int weights[],int capacity)
 6 {
 7      int dp[n+1][capacity+1]={};
 8      for(int i=1;i<=n;++i)
 9      {
10          for(int j=1;j<=capacity;++j)
11          {
12              if(j<weights[i-1])
13              {
14                  dp[i][j]=dp[i-1][j];
15              }
16              else
17              {
18                  dp[i][j]=max(dp[i-1][j],values[i-1]+dp[i-1][j-weights[i-1]]);
19              }
20          }
21      }
22      return dp[n][capacity];
23 }
24 
25 int main()
26 {
27      int values[]={6,3,5,4,6};
28      int weights[]={2,2,6,5,4};
29      int capacity=10;
30      cout<<select(values,5,weights,capacity);
31 }

 

posted @ 2021-05-13 23:12  丁帅帅dss  阅读(49)  评论(0)    收藏  举报