GESP C++ 真题 · 逐题精解
首页C++六级真题 › 2024年9月 › 第15题

GESP 2024年9月 C++六级 单选题 第15题

C++六级单选题2024年9月第15题

所属知识点:简单背包问题 难度要求:— 考频:—

0-1 背包:容量 W=10,4 个物品重量 1,3,4,6,价值 20,30,50,60,下面 DP 函数的输出为:
int knapsack(int W, vector<int>& weights, 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];
}

正确答案:C

题目解析
在容量 10 内选取:{1,3,6}(重 10,值 20+30+60=110)或 {4,6}(重 10,值 50+60=110)最优,输出 110,选 C。

想系统刷完 GESP C++ 1~8 级真题,并查看每道题的逐题精讲?

进入 GESPPASS 开始练习