解題思路:
1、求拓撲排序判斷任務排程是否可行
2、存在拓撲排序,分別求各交接點的最早完成時間和最遲完成時間
3、找出最早完成時間和最遲完成時間一樣的交接點
4、輸出關鍵活動
#include #include#define max 100+1
#define inf 0x3f3f3f3f
intg[max][max];
intindegree[max];//記錄入度
intoutdegree[max];//記錄出度
int ans=0
;//完成專案的最短時間
intearly[max];//記錄最早完成時間
intlate[max];//記錄最遲完成時間
int cnt=0
;//記錄入度為零的結點個數
intnv,ne;
void
init()
}void
toposortearly()
if(ans}}
}}if(!flag)
break
; }
}void
toposortlate()
while(1
) }}}
if(!flag)
break
; }
}int
main() }}
} else
printf("0
");return0;
}
高階實驗6 3 5 關鍵活動 30 分
思路 第一步 把所有的入度為0度結點壓入佇列中並讓earliest 0 第二步 進行topsort,並把每個彈出佇列的元素壓入堆疊中,如果能更新每個彈出元素的鄰接點的earliest就更新。第三步 找出所有的earliest 最短工期的頂點,令它們的latest earliest。第四步 利用堆疊反...
關鍵活動(30 分)
假定乙個工程專案由一組子任務構成,子任務之間有的可以並行執行,有的必須在完成了其它一些子任務後才能執行。任務排程 包括一組子任務 以及每個子任務可以執行所依賴的子任務集。比如完成乙個專業的所有課程學習和畢業設計可以看成乙個本科生要完成的一項工程,各門課程可以看成是子任務。有些課程可以同時開設,比如英...
7 1 關鍵活動 (30 分)
假定乙個工程專案由一組子任務構成,子任務之間有的可以並行執行,有的必須在完成了其它一些子任務後才能執行。任務排程 包括一組子任務 以及每個子任務可以執行所依賴的子任務集。比如完成乙個專業的所有課程學習和畢業設計可以看成乙個本科生要完成的一項工程,各門課程可以看成是子任務。有些課程可以同時開設,比如英...