多独立任务执行的最小空间动态规划问题

本文介绍了一个关于如何通过动态规划方法解决多任务执行的问题,其中要考虑任务运行时所需空间和运行后残留空间。算法思路涉及任务顺序调整,以确保整个任务链的空间需求最小。类似于沉降排序或冒泡排序,最终找到的任务顺序可以保证所需空间最小。
摘要由CSDN通过智能技术生成

 今天在百度知道上看到有人问这样一道题:

描述
有n个任务需要依次运行,第i个任务运行时需要占R[i]的空间,运行完成后仍然残留O[i]的空间( O[i]<R[i])。现在需要合理安排这些任务,使得运行完这些任务的需要的空间最小。
例如说,有两个任务,R[1]=10,O[1]=5,R[2]=8,O[2]=6。
如果先运行第1个任务,再运行第2个任务,则总共最多需要13的空间;
如果先运行第2个任务,再运行第1个任务,则总共最多需要16的空间;
因此选择第一种方式,使得占用空间最小。
输入
每组数据第一行为任务数 n (n <= 30),接下来的 n 行分别是对应的 R[i] O[i]。
输入以 0 结尾。
输出
对每组数据,输出所需的内存。
样例输入
2
10 5
8 6
5
5 5
4 4
3 3
2 2
1 1
0
样例输出
13
15

 

 

我的解答思路是

设Wi=Ri-Oi。只有两个任务t1,t2时,需要空间为V,需要最小空间实际为Vm
设先执行t1再执行t2表示为t1->t2,先执行t2再执行t1表示为t2->t1
则当t1->t2时,有V1=R2-R1+2O1;当t2->t1时,V2=R1-R2+2O2。
那么
V(t1->t2)=Vm(t1->t2)&

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值