GESP 五级 · GESP 202512 C++ 五级 第 14 题

选择题 · 答案 A · 考点:贪心算法、sort排序

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

题目

给定有 $ n $ 个任务,每个任务有截止时间和利润,每个任务耗时 1 个时间单位、必须在截止时间前完成,且每个时间槽最多做 1 个任务。为了在规定时间内获得最大利润,可以采用贪心策略,即按利润从高到低排序,尽量安排,则横线处应填写( )。

struct Task {
    int deadline;  // 截止时间
    int profit;    // 利润
};

void sortByProfit(vector<Task>& tasks) {
    sort(tasks.begin(), tasks.end(),
        [](const Task& a, const Task& b) {
            return a.profit > b.profit;
        });
}

int maxProfit(vector<Task>& tasks) {
    sortByProfit(tasks);

    int maxTime = 0;
    for (auto& t : tasks) {
        maxTime = max(maxTime, t.deadline);
    }

    vector<bool> slot(maxTime + 1, false);
    int totalProfit = 0;

    for (auto& task : tasks) {
        for (int t = task.deadline; t >= 1; t--) {
            if (!slot[t]) {
                __________________  // 在此处填入代码
                break;
            }
        }
    }

    return totalProfit;
}

A.

slot[t] = true;
totalProfit += task.profit;

B.

slot[t] = false;
totalProfit += task.profit;

C.

slot[t] = true;
totalProfit = task.profit;

D.

slot[t] = false;
totalProfit = task.profit;
答案:A

考点

贪心算法 讲解 →贪心算法 真题汇总 →sort排序 讲解 →sort排序 真题汇总 →

解题思维

根据上下文和C++语法规则确定空缺处应填的内容,关注函数调用参数、表达式和返回值类型。

常见错误

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

详细解析(节选)

【考点】贪心算法|排序|时间槽分配

1. 🎯 考纲定位

GESP五级算法设计模块,考查贪心策略与时间槽分配。命题人卡住的是"排序后如何动态占用时间槽"这一核心难点,很多考生只背结论却不懂布尔数组状态更新的逻辑。

同考点真题

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