ACM: 《黑书》高性能计算机

高性能计算机

问题描述:

       1.题目长, 我省略前面的了, 现在又一部超级计算机, 有三个工作状态A类, B类和待机, 它具有P个计算节点, 待机状态不执行计算, 并且初始状态为待机状态. 从其它状态(待机)转入A工作状态或B工作状态需要一定的启动时间. 对于不同的处理节点, 这个时间不一定相同. 用两个正整数ta[i]和tb[i](i = 1,2,3...,p)分别表示节点i转入工作状态A和工作状态B的启动时间(单位:ns).

       2.一个节点连续处理同一类任务时候, 执行时间——不含状态转换的时间——随任务量(这一类子任务的数目)的平方增长, 即: t = ka[i]*x^2,类似执行B任务x个的时间是: t = kb[i]*x^2,对应的执行时间为:其中, ka[i]和kb[i]是系数, 单位是ns.

       任务分配必须在所有计算开始之前完成,所谓任务分配, 即给每个计算节点设置一个任务队列, 队列由一串A类和B类子任务组成. 两类子任务可以交错排列.

       计算开始后, 各计算节点分别从各自的子任务队列中顺序读取计算任务并执行, 队列中连续的同类子任务将由该计算节点一次性读出, 队列中一串连续的同类子任务不能被分成两部分执行.

      现在需要你编写程序, 给这p个节点安排计算任务, 使得这个工程计算任务能够尽早完成. 假定任务安排好后不再变动,而且所有的节点都同时开始运行,任务安排的目标是使最后结束计算的节点的完成时间尽可能早.

 

输入:

     第一行是p, 第二行na, nb, 分别表示A类和B类任务个数. 接着的p行是ta[i],tb[i], ka[i], kb[i]

     表示每个计算节点的参数. (i = 1,2,3,...,p); (0<p<=20, 0<= na,nb<=60)

输出:

     输出一行, 全部任务完成的最短时间.

 

输入例子:

5 5

3

15 10 6 4

70 100 7 2

30 70 1 6

输出例子:

93

 

题意: 见原文.

 

解题思路: (黑书解题思路, 加上自己的思考)

      1. 问题有2个子问题:

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值