#include <bits/stdc++.h>
using namespace std;
bool dofind (int qishi,int gongjianhao,int timeneeded)
{
for (i=qishi;i<=timeneeded+qishi;i++)
if (TIMELINE[gongjianhao]==1) return false;
return true;
}
int main()
{
int SEQUENCE[402];
cin>>m>>n;
for (int i=1;i<=m*n;i++) {
cin>>SEQUENCE[i];
}
int MACHINE_NUM[20][20]//工件,工序-->机器号
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++) {
cin>>MACHINE_NUM[i][j];
}
int MACHINE_TIME[20][20];
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++) {
cin>>MACHINE_TIME[i][j];
}
int TIMELINE[21];
for (int i=1;i<=m*n;i++){
for (int j=TIMELINE[SEQUENCE[i]]+1;;i++){
if(dofind(j,SEQUENCE[i],MACHINE_TIME[i])) dofill(j);//获得工件的工序号?
}
}
}
现在的问题是如何获得工件的工序号。即进行到了第几个步骤。
可以开一个数组,每一次访问工件的时候,后面再+1,不免图森破。。
更新中(找题解中
简直是下标大乱斗吗。编辑器混乱不堪!!
原文:https://www.cnblogs.com/asanagiyantia/p/11491354.html