Problem C: [CSP-S1][程序阅读] 程序阅读8
Memory Limit:128 MB
Time Limit:1.000 S
Judge Style:Text Compare
Creator:
Submit:43
Solved:7
Description
int knapSack(int W, int wt[], int val[], int n) { int dp[W+1] = {0}; for (int i = 0; i < n; ++i) for (int j = W; j >= wt[i]; --j) dp[j] = max(dp[j], dp[j-wt[i]] + val[i]); return dp[W]; } |
判断题
1. 该代码实现了0/1背包的空间优化版本。( )
2. 若将内层循环改为`j=wt[i]; j<=W; ++j`,结果不变。( )
3. `dp[j]`表示容量为j时的最大价值。( )
4. 初始化`dp[0]=1`会导致错误答案。( )
5. 该算法时间复杂度为O(nW)。( )
选择题
6. 若`W=5, wt=[2,3], val=[1,2]`,返回值是:
A. 1 B. 2 C. 3 D. 4
7. 若物品无限使用,需如何修改代码?
A. 内层循环改为正序 B. 外层循环改为正序
C. 无需修改 D. 无法实现
8. 若`W=0`,函数返回:
A. 0 B. -1 C. 未定义 D. 报错
9. 空间优化的依据是:
A. 状态转移只依赖上一层 B. 完全背包特性
C. 贪心选择 D. 分治思想
10. 若所有`val[i]=0`,返回值是:
A. 0 B. W C. n D. -1