<算法导论>装配线调度



#include <unistd.h>
#include <iostream>
//算法导论PDF194页描述的问题
using namespace std;
inline int min(int a,int b)
{
    return a>b?b:a;
}
int a1[6]={7,9,3,4,8,4}; //a1装配线的时间
int a2[6]={8,5,6,4,5,7};//a2时间
int l2[6]={4,2,3,1,3,4};  //进入a2的时间
int l1[6]={2,2,1,2,2,1};  //进入a1的时间
int x1=3;   //a1出库时间
int x2=2;  //a2出库时间

//返回到装配线currentA的装配点currentP的最短时间
int minf(int currentA,int currentP)
{
    if(currentP)
    {
        if(currentA)
            return a2[currentP]+min(minf(0,currentP-1)+l2[currentP],minf(1,currentP-1));
        else
            return a1[currentP]+min(minf(0,currentP-1),minf(1,currentP-1)+l1[currentP]);
    }else
        if(currentA)
            return l2[0]+a2[0];
        else
            return l1[0]+a1[0];
}
int main()
{
    cout<<min(minf(0,5)+x1,minf(1,5)+x2)<<endl;
    return 0;
}



转载于:https://my.oschina.net/000quanwei/blog/395074

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值