Advertisement

算法作业 - 作业调度问题(贪心)

阅读量:
在这里插入图片描述

本题我的大致思路是先按提交时间以及惩罚程度给每个待处理的任务排序,在开始处理前先对每个任务按照既定规则进行排序并初始化各项参数值。随后开始执行以下操作:首先从最早的截止日期开始处理任务,在初始状态下所有待处理任务都是空缺的状态。随后依次从待处理列表中取出最先到期的任务开始执行相应的操作,在初始状态下所有待处理任务都是空缺的状态。
接下来具体操作如下:首先检查当前位置是否已有任务等待处理;如果当前位置没有要填充的任务,则直接填入所需数值;如果有要处理的任务,则取出该任务放到当前位置中,并将其对应的截止日期减一(即把当前任务的时间窗口向前推移一天)。然后继续检查下一个位置是否需要填补现有空缺。
当遇到某个位置已经存在完成的任务时,则需要将现有的完成任务移到当前的位置中来填补空缺,并将其对应的截止日期减一(即把当前任务的时间窗口向前推移一天)。如此循环往复直到所有要处理的截止日期均小于零时为止,则剩下的那些未被处理的数据即为最终结果。

复制代码
    #include<iostream>
    #include<algorithm>
    #include<vector>

全部评论 (0)

还没有任何评论哟~