GESP 六级 · GESP 202603 C++ 六级 第 14 题

选择题 · 答案 C · 考点:动态规划、递推

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

题目

小朋友们去邻里拜年,每个家里有不同数量的糖果。规则是:不能连续进入两个相邻的房子(即不能同时取相邻两家的糖果)。目标是拿到最多糖果。以下是代码实现,请补全横线。

int visit(vector<int>& nums) {
    if (nums.empty()) {
        return 0;
    }
    int size = nums.size();
    if (size == 1) {
        return nums[0];
    }
    vector<int> dp = vector<int>(size, 0);
    dp[0] = nums[0];
    dp[1] = max(nums[0], nums[1]);

    for (int i = 2; i < size; i++) {
        dp[i] = ______; // 在此处填写代码
    }

    return dp[size - 1];
}
答案:C

考点

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

解题思维

STL 容器:vector(动态数组)、set/map(红黑树,有序)、unordered_set/map(哈希表,无序)。注意迭代器失效问题。

常见错误

填空时注意语法完整性:分号、括号匹配、函数参数类型和个数、返回值类型。

详细解析(节选)

【考点】动态规划|状态转移方程|递推关系

🎯 考纲定位

GESP 六级 C++ 算法分级考试"动态规划"模块核心题型。命题人卡住的是考生对"不能相邻"约束的理解——看到"不能连续进相邻房子"就只想到排除当前,却忽略了DP的本质是"前i个的最优解依赖前i-1和前i-2的最优解"。

同考点真题

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