제15장 동태적 계획의'조립선 스케줄링'
코드는 다음과 같습니다.
#include <iostream>
using namespace std;
void FastestWay(int (*a)[7],int (*t)[7],int *e,int *x,int n,int (*f)[7],int (*l)[7],int &ff,int &ll)
{
f[0][1]=e[0]+a[0][1];
f[1][1]=e[1]+a[1][1];
for(int j=2;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]=1;
}
else
{
f[0][j]=f[1][j-1]+t[1][j-1]+a[0][j];
l[0][j]=2;
}
if(f[1][j-1]+a[1][j]<f[0][j-1]+t[0][j-1]+a[1][j])
{
f[1][j]=f[1][j-1]+a[1][j];
l[1][j]=2;
}
else
{
f[1][j]=f[0][j-1]+t[0][j-1]+a[1][j];
l[1][j]=1;
}
}
if(f[0][n]+x[0]<f[1][n]+x[1])
{
ff=f[0][n]+x[0];
ll=1;
}
else
{
ff=f[1][n]+x[1];
ll=2;
}
}
void PrintStations(int (*l)[7],int i,int j)
{
if(j==1)
{
cout<<"line "<<i<<" ,station "<<j<<endl;
}
else
{
int ti=i;
i=l[i-1][j];
int tj=j;
j--;
PrintStations(l,i,j);
cout<<"line "<<ti<<" ,station "<<tj<<endl;
}
}
int main()
{
int n=6;
int a[2][7]={{0,7,9,3,4,8,4},{0,8,5,6,4,5,7}};
int t[2][7]={{0,2,3,1,3,4},{0,2,1,2,2,1}};
int e[2]={2,4};
int x[2]={3,2};
int f[2][7],l[2][7];
int ff=0,ll=0;
FastestWay(a,t,e,x,n,f,l,ff,ll);
PrintStations(l,ll,6);
//cout<<ff<<" "<<ll;
system("pause");
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.