首页 / 客观题库

Q80018 - C++编程预备组判断题18

题目( 判断题 )

这是一个经典的完全背包问题动态规划解法。它在给定物品重量和价值的情况下,计算在不超过背包容量的前提下,如何选取物品使总价值最大化。

int knapsack(int W, int wt[], int val[], int n) {

    vector<vector<int>> dp(n + 1, vector<int>(W + 1, 0));

    for (int i = 1; i <= n; i++) {

        for (int w = 1; w <= W; w++) {

            if (wt[i-1] > w) {

                dp[i][w] = dp[i-1][w];

            } else {

                dp[i][w] = max(dp[i-1][w], val[i-1] + dp[i-1][w - wt[i-1]]);

            }

        }

    }

    return dp[n][W];

}

正确

错误

意见反馈

    最多上传3张图片,格式为JPG、PNG、JPEG,单张不超过5MB

    注册

    发送验证码

    密码必须包含数字、字母和特殊字符

    找回密码

    发送验证码

    密码必须包含数字、字母和特殊字符

    运行 ID:67149

    • 测试点1:Accepted
    • 用时:0 ms
    • 内存:288 kb
    • 测试点2:Accepted
    • 用时:0 ms
    • 内存:288 kb
    输入
    203
    输出
    203

    test

    测评信息

    错误.in文件下载

    错误.out文件下载

    运行 ID:67149

    2019-01-24 15:06:36