要求任务i在时间di前结束
任务i没有结束将遭受惩罚
贪心算法,拟阵的运用的,代码看不懂。
要求确定s的一个时间表使得总误事惩罚达到最小。
int GreedyJob(int n ,int d[],int J[])
{
d[0]=0;
J[0]=0;
int k=1;
J[1]=1;
for(int i=2;i<=n;i++){
int r=k;
while( (d[J[r]]>d[i])&&(d[J[r]]!=r))
r=r-1;
if((d[J[r]]<=d[i])&&d[J[i]]>r)){
for(int m=k;m>r;m--)
J[m+1]=J[m];
J[r+1]=i;
k=k+1;
}
}
return k;
}
看得懂的给个注释,详细点谢谢了。