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

wz015391 单选题 共 个子题
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;
正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧