View
225
Download
3
Embed Size (px)
Citation preview
1
10305: Ordering Tasks ☆☆☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10305: Ordering Tasks 解題者:陳相廷 解題日期: 2006 年 6 月 12 日 題意: 給定兩兩工作的先後關係,求出整體合 法執行順序。
2
題意範例: 五個工作,四個先後關係: 5 4
先後關係: 1 22 31 31 5
合法執行順序: 1 2 3 4 5
3
解法: topological sort1) 建表,記錄每個工作的前輩個數與後輩代號。2) 從前輩個數為零的工作開始執行。3) 每執行完一個工作,將此工作的後備的前輩
個數減一。4) 繼續步驟 2 ,直到執行完所有工作,即可得
到執行順序。
4
解法範例: 1 2
5 22 31 31 5
前輩數量
任務代號
1 0
2 0
3 0
4 0
5 0
5
解法範例: ( 續 ) 1 2
5 22 31 31 5
前輩數量
任務代號
1 0 2
2 1
3 0
4 0
5 0
6
解法範例: ( 續 ) 1 2
5 22 31 31 5
前輩數量
任務代號
1 0 2
2 2
3 0
4 0
5 0 2
7
解法範例: ( 續 ) 1 2
5 22 31 31 5
前輩數量
任務代號
1 0 2
2 2 3
3 1
4 0
5 0 2
8
解法範例: ( 續 ) 1 2
5 22 31 31 5
前輩數量
任務代號
1 0 2 3
2 2 3
3 2
4 0
5 0 2
9
解法範例: ( 續 ) 1 2
5 22 31 31 5
前輩數量
任務代號
1 0 2 3 5
2 2 3
3 2
4 0
5 1 2
10
解法範例: ( 續 ) 開始搜尋 1 2
5 22 31 31 5
前輩數量
任務代號
1 0 2 3 5
2 2 3
3 2
4 0
5 1 2
11
解法範例: ( 續 ) 1 2
5 22 31 31 5
1
前輩數量
任務代號
1 -1 2 3 5
2 2 3
3 2
4 0
5 1 2
12
解法範例: ( 續 ) 1 2
5 22 31 31 5
1
前輩數量
任務代號
1 -1 2 3 5
2 1 3
3 1
4 0
5 0 2
13
解法範例: ( 續 ) 1 2
5 22 31 31 5
1
前輩數量
任務代號
1 -1 2 3 5
2 1 3
3 1
4 0
5 0 2
14
解法範例: ( 續 ) 1 2
5 22 31 31 5
1 4
前輩數量
任務代號
1 -1 2 3 5
2 1 3
3 1
4 -1
5 0 2
15
解法範例: ( 續 ) 1 2
5 22 31 31 5
1 4
前輩數量
任務代號
1 -1 2 3 5
2 1 3
3 1
4 -1
5 0 2
16
解法範例: ( 續 ) 1 2
5 22 31 31 5
1 4 5
前輩數量
任務代號
1 -1 2 3 5
2 1 3
3 1
4 -1
5 -1 2
17
解法範例: ( 續 ) 1 2
5 22 31 31 5
1 4 5
前輩數量
任務代號
1 -1 2 3 5
2 0 3
3 1
4 -1
5 -1 2
18
解法範例: ( 續 ) 1 2
5 22 31 31 5
1 4 5
前輩數量
任務代號
1 -1 2 3 5
2 0 3
3 1
4 -1
5 -1 2
19
解法範例: ( 續 ) 1 2
5 22 31 31 5
1 4 5 2
前輩數量
任務代號
1 -1 2 3 5
2 -1 3
3 1
4 -1
5 -1 2
20
解法範例: ( 續 ) 1 2
5 22 31 31 5
1 4 5 2
前輩數量
任務代號
1 -1 2 3 5
2 -1 3
3 0
4 -1
5 -1 2
21
解法範例: ( 續 ) 1 2
5 22 31 31 5
1 4 5 2
前輩數量
任務代號
1 -1 2 3 5
2 -1 3
3 0
4 -1
5 -1 2
22
解法範例: ( 續 ) 完成 ! 1 2
5 22 31 31 5
1 4 5 2 3
前輩數量
任務代號
1 -1 2 3 5
2 -1 3
3 -1
4 -1
5 -1 2
23
討論:1) 時間複雜度: O(n2)
n 個元素,每個最多 n – 1 個後輩。2) 空間複雜度: O(n2)
需要 n * n 的表格。