GESP 七级 · GESP202609 C++ 七级 第 6 题

选择题 · 答案 B · 考点:动态规划

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

题目

有 4 堆石子,数量分别为 1、2、3、4。每次可以合并相邻两堆,合并代价为两堆石子数之和。将所有石子合并成一堆的最小总代价为( )。

答案:B

考点

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

解题思维

看到题先想:合并代价是两堆之和,本质是构造一棵二叉树,叶子是初始石子数,内部节点权值是子树和。最小总代价=所有内部节点权值之和。这类题通法是区间DP:枚举区间长度,再枚举分割点,dp[i][j]表示合并第i到j堆的最小代价。

常见错误

选项A 17 是贪心误把1+2+3+4=10当总代价;选项C 20 是合并顺序(1+2)+(3+4)再合并,代价3+7+10=20;选项D 23 是合并2+3=5后1+5=6再6+4=10,总21,但有人算错成23。最阴险的是"相邻"二字,合并后新堆位置会变,不能简单按原顺序算。

详细解析(节选)

1. 考纲定位

本题考查 GESP 七级 C++ 第 4 章"动态规划"第 2 节"区间 DP"。命题人卡住的是"合并代价是两堆之和"这一非标准 DP 状态,多数考生会误用贪心或简单枚举。

2. 解题思维

先枚举所有合并顺序,算出总代价:

最小值 19,对应选项 B。

同考点真题

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