A22231. 给定有n个任务,每个任务有截止时间和利润,每个任务耗时1个时间单位、必须在截止时间前完成,且每个时间槽最多做1个任务。为了在规定时间内获得最大利润,可以采用贪心策略,即按利润从高到低排序,尽量安排,则横线处应填写( )。class Task: def __init__(self, deadline, profit): self.deadline = deadline self.profit = …
单选题
困难
知识点
题目描述
给定有n个任务,每个任务有截止时间和利润,每个任务耗时1个时间单位、必须在截止时间前完成,且每个时间槽最多做1个任务。为了在规定时间内获得最大利润,可以采用贪心策略,即按利润从高到低排序,尽量安排,则横线处应填写( )。
class Task:
def __init__(self, deadline, profit):
self.deadline = deadline
self.profit = profit
def sort_by_profit(tasks):
tasks.sort(key=lambda x: x.profit, reverse=True)
def max_profit(tasks):
sort_by_profit(tasks)
max_time = 0
for task in tasks:
if task.deadline > max_time:
max_time = task.deadline
slot = [False] * (max_time + 1)
total_profit = 0
for task in tasks:
t = task.deadline
while t >= 1:
if not slot[t]:
________________
t -= 1
return total_profit选项(单选)
答案解析
详细答案解析为会员权益,按每日次数查看。
开通 / 升级会员
上一题
下一题