这个任务调度算法到底是怎么实现的,求助~~

NginxL 2014-12-11 08:17:57
问题描述

  有若干个任务需要在一台机器上运行。它们之间没有依赖关系,因此 可以被按照任意顺序执行。
  该机器有两个 CPU 和一个 GPU。对于每个任务,你可以为它分配不 同的硬件资源:
  1. 在单个 CPU 上运行。
  2. 在两个 CPU 上同时运行。
  3. 在单个 CPU 和 GPU 上同时运行。
  4. 在两个 CPU 和 GPU 上同时运行。
  一个任务开始执行以后,将会独占它所用到的所有硬件资源,不得中 断,直到执行结束为止。第 i 个任务用单个 CPU,两个 CPU,单个 CPU 加 GPU,两个 CPU 加 GPU 运行所消耗的时间分别为 ai,bi,ci 和 di。
  现在需要你计算出至少需要花多少时间可以把所有给定的任务完成。

输入格式

  输入的第一行只有一个正整数 n(1 ≤ n ≤ 40), 是总共需要执行的任 务个数。
  接下来的 n 行每行有四个正整数 ai, bi, ci, di(ai, bi, ci, di 均不超过 10), 以空格隔开。

输出格式

  输出只有一个整数,即完成给定的所有任务所需的最少时间。

样例输入

3
4 4 2 2
7 4 7 4
3 3 3 3

样例输出

7
...全文
417 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
FancyMouse 2014-12-14
  • 打赏
  • 举报
回复
引用 4 楼 qq644758884 的回复:
[quote=引用 1 楼 FancyMouse 的回复:] DP,2个cpu和1个gpu弄成3维状态,状态数至多400^3,然后再乘个n,差不多正好掐1秒
400^3*40。。。2,560,000,000,还掐1秒。。10秒都不见得跑的完[/quote] 你真的要算常数的话,做到第i个的时候有效状态只有到(10i)^3,这就能有一个1/4常数 然后再压缩位存储,批量处理一串bit。常数优化的办法有的是。 不过原来dp的那个存取模式已经比较cache friendly了,本身应该也不慢的。
bear234 2014-12-13
  • 打赏
  • 举报
回复
垃圾题目 没意义 这种题目就不能问至少 因为这种题目要得出最优解时间复杂度太高了,是n的阶乘 应该是用遗传算法来实现 可以得到一个较优的解
  • 打赏
  • 举报
回复
引用 1 楼 FancyMouse 的回复:
DP,2个cpu和1个gpu弄成3维状态,状态数至多400^3,然后再乘个n,差不多正好掐1秒
不过我也只想到这个办法。。。
  • 打赏
  • 举报
回复
引用 1 楼 FancyMouse 的回复:
DP,2个cpu和1个gpu弄成3维状态,状态数至多400^3,然后再乘个n,差不多正好掐1秒
400^3*40。。。2,560,000,000,还掐1秒。。10秒都不见得跑的完
NginxL 2014-12-12
  • 打赏
  • 举报
回复
引用 1 楼 FancyMouse 的回复:
DP,2个cpu和1个gpu弄成3维状态,状态数至多400^3,然后再乘个n,差不多正好掐1秒
大神,详细说明下啊。。
FancyMouse 2014-12-12
  • 打赏
  • 举报
回复
DP,2个cpu和1个gpu弄成3维状态,状态数至多400^3,然后再乘个n,差不多正好掐1秒

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧