‹ 上一题 下一题 ›

g6-04863. GESP-6级-2024-09-单选-第15题 未做

阅读以下用动态规划解决的-背包问题的函数,假设背包的容量 是,假设输入个物品的重量weights分别为1,3,4,6(单位为 kg),每个物品对应的价值values分别为20,30,50,60,则函数的输出为( )。

#include <iostream>
#include <vector>
using namespace std;

// 0/1背包问题
int knapsack(int W, const vector<int>& weights, const vector<int>& values, int n) {
    vector<vector<int>> dp(n + 1, vector<int>(W + 1, 0));

    for (int i = 1; i <= n; ++i) {
        for (int w = 0; w <= W; ++w) {
            if (weights[i - 1] <= w) {
                dp[i][w] = max(dp[i - 1][w], dp[i - 1][w - weights[i - 1]] + values[i - 1]);
            }
            else
            {
                dp[i][w] = dp[i - 1][w];
            }
        }
    }

    return dp[n][W];
}
  • A.
  • B.
  • C.
  • D.
未选择
输入
输出

            
答案