调度器上有一组将调度的任务(job),大部分任务之间存在亲和关系,需要优先把具有亲和关系的任务调度到同一个核上面,不亲和的任务不能运行在同一个核上面;
现在给定一组待调度的任务(任务编号和任务执行时间),同时会给出任务之间不存在亲和关系的列表(未给出的默认是亲和关系)。请设计一个调度器,按照如下要求:
1、找出一组包含亲和任务数量最多的亲和调度任务组;
2、如果规则1有多个解,给出所有任务执行时间之和最小的。并输出该亲和调度任务组的所有任务执行时间之和。
本节课我们继续讨论骗分的方法。在前面章节我们学习了dfs,也就是找遍所有的方法去得到正确答案,适用于范围小,因此我们可以用来骗分。
本题来自2024年8月21日华为机考真题。这里塔子哥给大家介绍一下华为机考:总共三道编程题,每道题的分值是(100,200,300),通过华为机考需要至少150分。本题是秋招某次机考的最后一题(300分)。根据考生反映,使用本节课的骗分方法,我们可以拿到300 * 70% = 210 的高分,直接拿下机考!
我们需要设计一个调度器,调度一组任务到不同的处理核上。任务之间存在亲和关系(默认情况下),即可以被调度到同一个核上;也存在不亲和关系(通过输入给出),即不能被调度到同一个核上。调度的目标是: