#include
void main()
{
int k,J,p,m,s,io,t,i,u;
k=1;
int n[4]={3,4,3,3};
int q[5][4]={{0,0,0,0},{30,31,29,28},{34,34,35,35},{38,37,38,37},{0,40,0,0}};
int nn[4],q1[14],no[14][4],q2[14];
for(t=0;t<14;t++)
for(i=0;i<4;i++)no[t][i]=0;
while(k<=4){
if(k==1){
nn[k-1]=n[k-1];
J=0;
do{
q1[J]=q[J][k-1];
no[J][k-1]=J;
J++;
}while(J<=n[k-1]);}
else{
m=nn[k-2];
nn[k-1]=m+n[k-1];
J=0;
while(J<=nn[k-1]){
int y=1000;
int i=0;
loop: if(J-i>m){i++;
if(i>n[k-1]){q2[J]=y;no[J][k-1]=io;}
else goto loop;}
else if(i>J) {q2[J]=y;no[J][k-1]=io;}
else {s=q[i][k-1]+q1[J-i];
if(sn[k-1]){q2[J]=y;no[J][k-1]=io;}
else goto loop; }
J++;}
for(i=0;i=0){p=J;
k=4;
while(k>=1){no[J][k-1]=no[p][k-1];
p=p-no[p][k-1];
k--;}
J--;
}
printf("J\\NO 1# 2# 3# 4# Q\n");
for(t=0;t<14;t++)
printf("%2d %d %d %d %d %d\n",t,no[t][0],no[t][1],no[t][2],no[t][3],q2[t]);
}
2022-11-13 17:15:44
1KB
调度算法
1