1 10305: ordering tasks ☆☆☆☆☆ 題組: problem set archive with online judge 題號:...

23
1 10305: Ordering Tasks ☆☆☆☆☆ 題題Problem Set Archive with Online Judge 題題10305: Ordering Tasks 題題題題題題 題題題題2006 年 6 年 12 年 題題年年年年年年年年年年年 年年年年 年 ,體 年年年年年

Post on 21-Dec-2015

225 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: 1 10305: Ordering Tasks ☆☆☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10305: Ordering Tasks 解題者:陳相廷 解題日期: 2006 年 6 月 12 日

1

10305: Ordering Tasks ☆☆☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10305: Ordering Tasks 解題者:陳相廷 解題日期: 2006 年 6 月 12 日 題意: 給定兩兩工作的先後關係,求出整體合 法執行順序。

Page 2: 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

Page 3: 1 10305: Ordering Tasks ☆☆☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10305: Ordering Tasks 解題者:陳相廷 解題日期: 2006 年 6 月 12 日

3

解法: topological sort1) 建表,記錄每個工作的前輩個數與後輩代號。2) 從前輩個數為零的工作開始執行。3) 每執行完一個工作,將此工作的後備的前輩

個數減一。4) 繼續步驟 2 ,直到執行完所有工作,即可得

到執行順序。

Page 4: 1 10305: Ordering Tasks ☆☆☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10305: Ordering Tasks 解題者:陳相廷 解題日期: 2006 年 6 月 12 日

4

解法範例: 1 2

5 22 31 31 5

前輩數量

任務代號

1 0

2 0

3 0

4 0

5 0

Page 5: 1 10305: Ordering Tasks ☆☆☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10305: Ordering Tasks 解題者:陳相廷 解題日期: 2006 年 6 月 12 日

5

解法範例: ( 續 ) 1 2

5 22 31 31 5

前輩數量

任務代號

1 0 2

2 1

3 0

4 0

5 0

Page 6: 1 10305: Ordering Tasks ☆☆☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10305: Ordering Tasks 解題者:陳相廷 解題日期: 2006 年 6 月 12 日

6

解法範例: ( 續 ) 1 2

5 22 31 31 5

前輩數量

任務代號

1 0 2

2 2

3 0

4 0

5 0 2

Page 7: 1 10305: Ordering Tasks ☆☆☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10305: Ordering Tasks 解題者:陳相廷 解題日期: 2006 年 6 月 12 日

7

解法範例: ( 續 ) 1 2

5 22 31 31 5

前輩數量

任務代號

1 0 2

2 2 3

3 1

4 0

5 0 2

Page 8: 1 10305: Ordering Tasks ☆☆☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10305: Ordering Tasks 解題者:陳相廷 解題日期: 2006 年 6 月 12 日

8

解法範例: ( 續 ) 1 2

5 22 31 31 5

前輩數量

任務代號

1 0 2 3

2 2 3

3 2

4 0

5 0 2

Page 9: 1 10305: Ordering Tasks ☆☆☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10305: Ordering Tasks 解題者:陳相廷 解題日期: 2006 年 6 月 12 日

9

解法範例: ( 續 ) 1 2

5 22 31 31 5

前輩數量

任務代號

1 0 2 3 5

2 2 3

3 2

4 0

5 1 2

Page 10: 1 10305: Ordering Tasks ☆☆☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10305: Ordering Tasks 解題者:陳相廷 解題日期: 2006 年 6 月 12 日

10

解法範例: ( 續 ) 開始搜尋 1 2

5 22 31 31 5

前輩數量

任務代號

1 0 2 3 5

2 2 3

3 2

4 0

5 1 2

Page 11: 1 10305: Ordering Tasks ☆☆☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10305: Ordering Tasks 解題者:陳相廷 解題日期: 2006 年 6 月 12 日

11

解法範例: ( 續 ) 1 2

5 22 31 31 5

1

前輩數量

任務代號

1 -1 2 3 5

2 2 3

3 2

4 0

5 1 2

Page 12: 1 10305: Ordering Tasks ☆☆☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10305: Ordering Tasks 解題者:陳相廷 解題日期: 2006 年 6 月 12 日

12

解法範例: ( 續 ) 1 2

5 22 31 31 5

1

前輩數量

任務代號

1 -1 2 3 5

2 1 3

3 1

4 0

5 0 2

Page 13: 1 10305: Ordering Tasks ☆☆☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10305: Ordering Tasks 解題者:陳相廷 解題日期: 2006 年 6 月 12 日

13

解法範例: ( 續 ) 1 2

5 22 31 31 5

1

前輩數量

任務代號

1 -1 2 3 5

2 1 3

3 1

4 0

5 0 2

Page 14: 1 10305: Ordering Tasks ☆☆☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10305: Ordering Tasks 解題者:陳相廷 解題日期: 2006 年 6 月 12 日

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

Page 15: 1 10305: Ordering Tasks ☆☆☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10305: Ordering Tasks 解題者:陳相廷 解題日期: 2006 年 6 月 12 日

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

Page 16: 1 10305: Ordering Tasks ☆☆☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10305: Ordering Tasks 解題者:陳相廷 解題日期: 2006 年 6 月 12 日

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

Page 17: 1 10305: Ordering Tasks ☆☆☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10305: Ordering Tasks 解題者:陳相廷 解題日期: 2006 年 6 月 12 日

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

Page 18: 1 10305: Ordering Tasks ☆☆☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10305: Ordering Tasks 解題者:陳相廷 解題日期: 2006 年 6 月 12 日

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

Page 19: 1 10305: Ordering Tasks ☆☆☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10305: Ordering Tasks 解題者:陳相廷 解題日期: 2006 年 6 月 12 日

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

Page 20: 1 10305: Ordering Tasks ☆☆☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10305: Ordering Tasks 解題者:陳相廷 解題日期: 2006 年 6 月 12 日

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

Page 21: 1 10305: Ordering Tasks ☆☆☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10305: Ordering Tasks 解題者:陳相廷 解題日期: 2006 年 6 月 12 日

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

Page 22: 1 10305: Ordering Tasks ☆☆☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10305: Ordering Tasks 解題者:陳相廷 解題日期: 2006 年 6 月 12 日

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

Page 23: 1 10305: Ordering Tasks ☆☆☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10305: Ordering Tasks 解題者:陳相廷 解題日期: 2006 年 6 月 12 日

23

討論:1) 時間複雜度: O(n2)

n 個元素,每個最多 n – 1 個後輩。2) 空間複雜度: O(n2)

需要 n * n 的表格。