下面代码实现 0/1 背包的一维动态规划。第 i 个物品重量为 wt[i] ,价值为 val[i] ,背包容量为 W 。横线处应填写( )。 int knapsack(int W, vector& wt, vector& val) { int n = wt.size(); vector dp(W + 1, 0); for (int i = 0; i = wt[i]; --w) { ----------------------------------- // 空缺位置标准答案 dp[w] = max(dp[w], dp[w - wt[i]] + val[i]); } return dp[W]; }
A:dp[w] = max(dp[w], dp[w - wt[i]] + val[i]);
B:dp[w] = max(dp[w - 1], dp[w - wt[i]] + val[i]);
C:dp[w] = dp[w] + val[i];
D:dp[w - wt[i]] = max(dp[w], val[i]);
正确答案:A
试卷来源:202606 CCF-GESP编程能力等级认证C++六级真题