uva 11729

题目:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=28436

首先,直观的感受是:

每一个任务的交待时间是不可避免的,而且每一个交待时间后面都跟着一个执行时间。最后的总时间一定是全部交待时间之和加上某一个任务所带来的部分执行时间。

既然交待时间是不可避免的,那就只好让那个多出来的执行时间尽量减少——尽量充分利用执行时间,尽量在别人执行任务的时候交待任务!


所以,可以用贪心策略来解决:最长执行时间的任务优先!


《训练指南》中有给出证明(Page 4),这里也简单提一下:

假设现在存在一个任务序列了,假设这个任务中至少存在两个任务T1, T2不满足最长执行时间优先性质,即 J1 < J2, 且交待时间记作B, 执行时间记作J,则

case 1: 当J2 >= B1+J1,通过画图可以看出,你会发现交换任务T1, T2,两个任务的总耗时并没有改变, 所以把执行时间长的交换到前面去不会使得效果更差。

case 2: 当 J2 < B1+J1,如果先执行T1,总耗时为B1+B2+J2; 若先执行T2,那么总耗时为B2+B1+J1

又因为J1 < J2, 所以让执行时间更长的T2优先于T1执行会更加有利。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值