测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A20883. 下列代码实现了一个0-1背包的一维动态规划代码,内层循环是经典的逆序写法。若将内层循环改成正序遍 历(即 for (int j = w[i]; j <= W; j++) ),仍能得到正确答案。( )int main() { int W = 5; int w[] = {2, 3, 4}; int v[] = {10, 1, 1}; int n = 3; int dp[6] = {0}; for (…

判断题 困难

题目描述

下列代码实现了一个0-1背包的一维动态规划代码,内层循环是经典的逆序写法。若将内层循环改成正序遍 历(即  for (int j = w[i]; j <= W; j++) ),仍能得到正确答案。(    )

int main() {
    int W = 5;
    int w[] = {2, 3, 4};
    int v[] = {10, 1, 1};
    int n  = 3;
    int dp[6] = {0};

    for (int i = 0; i < n; i++) {
        for (int j = W; j >= w[i]; j--) {   // ← 逆序!
            dp[j] = max(dp[j], dp[j - w[i]] + v[i]);
        }
    }
    cout << dp[W];
}

选项(单选)

上一题 下一题