!!!!!大疆笔试--任务调度问题

假设有n个任务,每个任务都有解决其要花费的时间t,和该任务的deadline时间;
那么存在一个任务的最佳调度顺序,使得总共延期时间最少,输出这个最少时间?
输入首行为任务数量,接下来n行为每个任务的花费时间和deadline时间
例如
3
3 4
2 4
4 2
最佳的调度顺序是先执行第二个任务,第二个拖延为0,然后执行第一个任务,第一个延期时间为1(完成的时间点是5,deadline为4)。然后执行第三个需求,延期时间为7(完成的时间点为9,deadline为2),总共0+1+7=8
输出  8
这种任务调度问题该怎么解决,请各位大神赐教!!!

全部评论
对于任务x(a, b)如果a > b,按a的大小排 对于任务y(a, b)如果a <= b,按b的大小排 这两个规则应该没争议吧。 现在考虑任务x(a, b), y(c, d),不妨设a > b, c <= d,总的延迟值记为S 则如果x排在y前面有 S0 = a - b + max(0, a+c - d) y排在x前面 S1 = 0 + (a+c - b) 1、假设a+c > d, 则S0 = a - b + a + c - d = a + c - b + a - d, S0 <= S1 ===> a - d <= 0 ====> a <= d 2、假设a+c <= d ===> a <= d,则S0 = a-b,显然S0 <= S1 也就是说对于两个任务x(a,b), y(c,d),一个满足a>b, 另一个满足c<=d,如果要使得延迟值最小, 则当a <= d时,x排在y前面 否则,y排在x前面。
点赞 回复
分享
发布于 2017-09-18 13:48
4 2 ? 这个,感觉,试试贪心?
点赞 回复
分享
发布于 2017-09-16 22:49
滴滴
校招火热招聘中
官网直投
我用深搜只过了30……不过无所谓了,反正做之前查了下状态性格测试挂了
点赞 回复
分享
发布于 2017-09-17 00:19
mark下,貌似简单的贪心无法解决。。求大神。
点赞 回复
分享
发布于 2017-09-17 02:13
1.有任务没有超时,优先完成其中耗时短的。2.所有任务都超时了,优先完成其中耗时短的。 个人见解。。。
点赞 回复
分享
发布于 2017-09-17 07:10
问了我的大神舍友,贪心规则如下 对于任务x(a, b)如果a > b,按a的大小排 对于任务y(a, b)如果a <= b,按b的大小排 然后把a > b的查到a <= b 的那一组,保证规则当前的a < 下一个的b。
点赞 回复
分享
发布于 2017-09-17 18:16
一般书上举例的是让最大延迟最小,而这题实际就是让总延迟最少,不过貌似不能在多项式时间内解决,参加看下面的 Scheduling to Minimizing Total Lateness  https://ocw.tudelft.nl/wp-content/uploads/Algoritmiek_Scheduling_to_Minimize_Maximum_Lateness.pdf
点赞 回复
分享
发布于 2017-09-18 13:17
请问这是什么岗位的笔试题?
点赞 回复
分享
发布于 2018-07-04 21:01
这是在哪找的大疆笔试题?
点赞 回复
分享
发布于 2018-07-04 21:31

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务