一维数组实现的 0/1 背包,横线处应填入:
for (int i = 0; i < n; ++i)
for (int w = W; w >= wt[i]; --w)
________ // 填写
- A. dp[w] = max(dp[w], dp[w] + val[i]);
- B. dp[w] = dp[w - wt[i]] + val[i];
- C. dp[w] = max(dp[w - 1], dp[w - wt[i]] + val[i]);
- D. dp[w] = max(dp[w], dp[w - wt[i]] + val[i]);
正确答案:D