#P1448. 2024.10.24-秋招(留学生)-第3题-服务器训练任务调度
-
ID: 157
Type: Default
1000ms
256MiB
Tried: 134
Accepted: 53
Difficulty: 3
Uploaded By:
TaZi
Tags>数据结构
2024.10.24-秋招(留学生)-第3题-服务器训练任务调度
题目内容
团队申请了一组服务器,用于机器学习训练,为了充分利用资源,需要你来完成任务调度算法的实现。
一台服务器同一时间只能执行一个训练任务,每个训练任务有训练时间和优先级。
当空闲服务器不足时,优先执行高优先级的训练任务;如果多个训练任务的优先级相同,优先执行训练时间长的任务。
当空闲服务器充足时,可以同时执行不同优先级的训练任务。
所有任务在开始时刻(零时刻)一次性提交完毕,等待调度。任务一旦开始就不能暂停或更换服务器,直到任务结束。
现在需要根据服务器和训练任务,计算完成所有训练任务的总时间。
输入描述
第一行一个整数M,表示空闲服务器的数量,1<=M<=103
第二行一个整数N,表示训练任务的数量,1<=N<=105
从第三行开始连续N行,每行两个整数和P,分别表示对应任务的训练时间和优先级,1≤T≤107,1≤P≤10。
优先级P数值越小,表示优先级越高。
不需要考虑非法输入。
输出描述
完成所有训练任务的总时间
样例1
输入
2
4
1 1
2 1
2 2
4 2
输出
5
说明
2台服务器4个训练任务,为方便描述,假设2台服务器编号分别为A、B。
1、起始时刻为0,先同时执行两个优先级均为1的训练任务。A执行任务T=1,F=1;B执行任务-2,-1
2、在时刻1,A的任务执行完毕,继续执行优先级为2,并且执行时间较长的任务T=4,P=2
3、在时刻2,B的任务执行完毕,执行剩余的一个任务T=2,P=2。
4、在时刻4,B的任务执行完毕,没有未执行的任务。
5、在时刻5,A的任务执行完毕,没有未执行的任务。
训练完成的时刻即需要的总时间为5,输出5。
样例2
输入
3
3
1 1
2 2
3 3
输出
3
说明
3台服务器3个训练任务,不同优先级的任务可以同时执行。
3台服务器的执行时长依次为1、2、3。
训练任务的总执行时长为3。
通知
扫码备注华为交流群~期待您的到来
- 湘ICP备2023007293号
- Worker 0, 39ms
- Powered by Hydro v4.14.1 Community