题库首页 › GESP等级认证(C++) › 题目 21087

给定有 个任务,每个任务有截止时间和利润,每个任务耗时 1 个时间单位、必须在截止时间前完成,且每个时间槽最多做 1 个任务。为了在规定时间内获得最大利润,可以采用贪心策略,即按利润从高到低排序,尽量安排,则横线处应填写( )。struct Task { int deadline; //截止时间 int profit; //利润 }; void sortByProfit(vector& tasks) { sort(tasks.begin(), tasks.end(), [](const Task& a, const Task& b) { return a.profit > b.profit; }); } int maxProfit(vector& tasks) { sortByProfit(tasks); int maxTime = 0; for (auto& t : tasks) { maxTime = max(maxTime, t.deadline); } vector 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;Copy
B. slot[t] = false; totalProfit += task.profit;Copy
C. slot[t] = true; totalProfit = task.profit;Copy
D. lot[t] = false; totalProfit = task.profit;Copy

正确答案:A

试卷来源:202512 CCF-GESP编程能力等级认证C++五级真题

本卷相关题目

在线做题 同科目题库