某汽车工厂有2个装配线,每个装配线有n 个装配站(按顺序编号1~n ),两个装配线对应的装配站执行相同的功能,但所用的时间可能不同。经过第i条流水线(i=1,2)的第j 个装配站所花的时间为Aij。从第i条流水线的第j 个装配站移到第j+1个装配站的时间可以忽略,而移到另外一个流水线的下一个装配站则需要一定的时间Tij。
汽车进入流水线不需要花时间,出流水线时需要花时间Tin。
汽车的装配需要按顺序经过所有装配站。
现在已知装配时间Aij 和转移时间Tij,要求输出装配一辆汽车所需要的最短时间。
// 装配线调度问题.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
#define n 6
using namespace std;
int e1=2,e2=4;
int x1=3,x2=2;
int f[2][6];]//装配站的时间
int l[2][6];//装配线
int a[2][6]={
{7,9,3,4,8,4},{8,5,6,4,5,7}};
int t[2][5]={
{2,3,1,3,4},{2,1,2,2,1}};
int last;//最后出口
int result;//总结果
void fast_way(int a[][6],int t[][5])
{
f[0][0]=e1+a[0][0];
f[1][0]=e2+a[1][0];
for(int j=1;j<n;j++)
{
if((f[0][j-1]+a[0][j])<=(f[1][j-1]+t[1][j-1]+a[0][j]))
{
f[0][j]=f[0][j-1]+a[0][j];
l[0][j]=0;
}
else
{
f[0][j]=f[1][j-1]+t[1][j-1]+a[0][j];
l[0][j]=1;
}
if((f[1][j-1]+a[1][j])<=(f[0