流水线调度问题,直接上图:
e为开始为进入流水线花费时间,a为station花费的时间,t为切换流水线花费时间,x为出流水线的时间,
代码中用total[0][i]和total[1][i]分别表示第0条和第1条流水线到station i 所花费的最短时间
代码(C语言写的心累):
#include<stdio.h> #include<stdlib.h> #include<malloc.h> #include<time.h> #include<string.h> #include<fstream> #define MAX 200000 int assembleLineSequence(int *e, int t[][MAX], int a[][MAX],int *x, int n) { int *total[2]; //记录到达每个station最小的时间花费 total[0] = (int *)malloc(sizeof(int)*n); total[1] = (int *)malloc(sizeof(int)*n); total[0][0] = e[0] + a[0][0]; total[1][0] = e[1] + a[1][0]; for(int i=1; i<n; i++){ if(total[0][i-1] + a[0][i] < tot