以下C++实现的0/1背包动态规划解法代码中,横线处应填入的内容是?

eh434887 单选题 共 个子题

以下代码实现了0/1背包问题的动态规划解法。假设物品重量为weights[],价值为values[],背包容量为W,请选择横线处应填写的内容。

int knapsack(int W, vector<int>& weights, vector<int>& values) {
  int n = weights.size();
  vector<vector<int>> dp(n + 1, vector<int>(W + 1, 0));

  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= W; j++) {
      if (weights[i-1] > j) {
        dp[i][j] = dp[i-1][j]; // 当前物品装不下
      } else {
        dp[i][j] = max(_________________________); // 在此处填入代码
      }
    }
  }
  return dp[n][W];
}
A

dp[i-1][j], values[i-1]

B

dp[i-1][j], dp[i-1][j - weights[i-1]] + values[i-1]

C

dp[i][j-1], values[i-1]

D

dp[i-1][j - weights[i-1]] + values[i-1], dp[i][j-1]

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧