1 条题解
-
0
CJTX02|最短任务优先 题解
核心算法
按任务时长从小到大排序。
思路推导
排在越前面的任务会被计入越多次等待时间。时长较短的任务应优先执行。排序后维护已经执行的总时长
prefix:每安排一个新任务,先把prefix加入答案,再把该任务时长加入prefix。正确性说明
考虑相邻的两个任务,时长分别为 和 。如果 却让 在前,那么这两个任务对后续任务的影响相同,但第二个任务会多等待 。交换顺序后只需等待 ,等待总和减少 。因此最优序列中不存在前长后短的逆序对,任务必须按时长非递减排列。
复杂度
- 时间复杂度:;
- 空间复杂度:。
易错点
- 第一个任务的等待时间是 ;
- 不要把完成时间总和与等待时间总和混淆;
- 累加结果使用
long long。
- 1
信息
- ID
- CJTX02
- 时间
- 2000ms
- 内存
- 256MiB
- 标签
- 递交数
- 6
- 已通过
- 4
- 上传者