关于01背包问题的C++动态规划空间优化,下列说法正确的是?

xv809339 单选题 共 个子题

已知常规二维动态规划解法解决01背包问题的代码如下:

int dp[105][105];
for(int i=1;i<=n;i++){
    for(int j=1;j<=V;j++){
        if(j < w[i]) dp[i][j] = dp[i-1][j];
        else dp[i][j] = max(dp[i-1][j], dp[i-1][j - w[i]] + v[i]);
    }
}

其中n为物品总数,V为背包总容量,w[i]、v[i]分别为第i件物品的重量和价值。现将该解法进行空间优化,将二维dp数组压缩为一维数组,下列说法正确的是?

A

优化后的一维DP代码可以将外层和内层循环顺序互换,不影响最终结果的正确性

B

优化后的一维DP数组需要倒序遍历背包容量(从V到w[i]),以保证不会重复选取同一物品

C

优化后的一维DP数组无需再处理j < w[i]的边界情况,可直接省略相关判断

D

优化后的一维DP解法的空间复杂度仍为O(nV),与二维解法完全一致

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