有n个物品,每个物品的价值为v[i], 重量为w[i], 一个背包,能承受的最大重量W,求背包能装入多少的背包,使得装入的价值最大?
#include<iostream>
using namespace std;
int dp[n+1][V] = {0};
for(int i=1; i<=n;i++){
for(int j=0;j<=W;j++){
dp[i][j] = dp[i-1][j];
if(j>=w[i]){
dp[i][j] = max(dp[i-1][j], dp[i-1][j-w[i]] +v[i]);
}
}
}
void findWhat(int i,int j,int[] item,int[][] dp){
if(i>=0){
if(dp[i][j] == dp[i-1][j]){
item[i]=0;
}else if(j>=w[i] && dp[i][j]==dp[i-1][j-w[i]]+v[i]){
item[i]=1;
findWhat(i-1,j-w[i]);
}
}
}
int main(){
}