GESP 七级 · GESP 202606 C++ 七级 第 18 题

判断题 · 答案 B · 考点:动态规划

← 整套速查表 GESP 七级 全部真题

题目

$0/1$ 背包使用一维数组优化时,容量从小到大枚举也能保证每件物品最多被选一次。

答案:B

考点

动态规划 讲解 →动态规划 真题汇总 →

解题思维

仔细审题,明确已知条件和所求目标,运用相关知识点逐项分析。

常见错误

审题时注意题目要求(选正确还是选错误),避免因审题不清失分。涉及代码的题目要逐行分析变量变化。

详细解析(节选)

【考点】动态规划|状态转移依赖|完全背包

GESP 七级 动态规划模块,专门卡住“一维数组优化”这一高频考点。命题人设计此题,就是要区分考生是否真正理解状态转移的依赖关系。

看到“一维数组优化”和“容量从小到大枚举”,关键要意识到:正向枚举时,当前物品更新后的状态会被后续容量重复使用,相当于变成完全背包。正确做法必须逆序枚举容量,确保每个物品只影响一次。

选项 A 的陷阱在于“从小到大”这个绝对化表述。命题人利用的是“正向枚举也能保证”的直觉误区,其实正向枚举时,dp[j] 更新后,j+1 会用到它,导致物品被多次选。细节上,题目没提“完全背包”,就是偷换概念,让你误以为正向枚举和完全背包一样。

如果把题改成“完全背包”,正向枚举就对了;改成“每种物品最多选两次”,那正向枚举也不对,得用二维数组或更复杂的逻辑。刷到类似题,先问自己:命题人想考我理解状态转移还是单纯记结论?

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断