GESP 五级 · GESP 202509 C++ 五级 第 13 题

选择题 · 答案 B · 考点:贪心算法

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

题目

假设你是一家电影院的排片经理,只有一个放映厅。你有一个电影列表 movies,其中 movies[i] = [start_i, end_i] 表示第 $ i $ 部电影的开始和结束时间。请你找出最多能安排多少部不重叠的电影,则横线上应分别填写的代码为( )。

int maxMovies(vector<vector<int>>& movies) {
    if (movies.empty()) return 0;

    sort(movies.begin(), movies.end(), [](const vector<int>& a, const vector<int>& b) {
        return ______; // 在此处填入代码
    });

    int count = 1;
    int lastEnd = movies[0][1];

    for (int i = 1; i < movies.size(); i++) {
        if (movies[i][0] >= lastEnd) {
            count++;
            ______ = movies[i][1]; // 在此处填入代码
        }
    }

    return count;
}
答案:B

考点

贪心算法 讲解 →贪心算法 真题汇总 →

解题思维

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

常见错误

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

详细解析(节选)

【考点】贪心算法|区间调度|排序定制

1. 🎯 考纲定位

五级 C++ 模块"算法与数据结构"第 3 章贪心策略。命题人专门卡住死记硬背"区间问题要排序"的学生——不写对排序规则直接选 C,后半段更新变量再选 C,看似都能跑,但一旦数据构造为 [1,10],[2,3],[4,5],选 C 就只排 1 部,正确答案是 2 部,这就是为什么必须同时写对两个空。

同考点真题

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