下面代码实现 0/1背包的一维动态规划,第 i 个物品重量为wt[i],价值为val[i],宝宝容量为W 。横线处应填写
int knapsack(int W, vector<int>& wt, vector<int>& val){
int n= wt.size();
vector<int> dp(W+ 1, 0);
for(int i= 0; i< n;++i){
for(int w= W; w>= wt[i];--w){
__________________________
}
}
return dp[W];
}
dp[w]= max(dp[w], dp[w- wt[i]]+ val[i]);
dp[w]= max(dp[w- 1], dp[w- wt[i]]+ val[i]);
dp[w]= dp[w]+ val[i];
dp[w- wt[i]]= max(dp[w], val[i]);