编辑代码

#include <iostream>
#include <algorithm> 
#include <vector>
using namespace std;

const int N =1010;

int n,m;
int v[N],W[N];
int f[N][N];
 
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int knapsack(vector<int>& w,vector<int>& v,int capacity){
	int n=w.size();
	//创建dp表,大小为(n+1) * (capacity+1)
	vector<int> dp(n+1,0);
	
	//填充dp表

	for(int i=0;i<n;i++){
		for(int j=capacity;j>=w[i];j--){
				//选择当前物品或不选择当前物品 
				dp[j]= max(dp[j],dp[j-w[i]]+v[i]) ;
			}
		}  
	return dp[capacity];
}
int main() {
	 vector<int> w={2,3,4,5};
	 vector<int> v={3,4,5,6};
	 int capacity =5;
	 
	 int result=knapsack(w,v,capacity);
	 cout<<result;
	return 0;
}