題目連結
題意:
有若干個 Task
彼此間有相依關係,分成直接與間接
如: A depends on B, and B depends on C
則可以說 A 有 2 個依賴,B 1個,C 0 個
(單向,A 對 B不能算給 B)
要找出依賴最高的 Task
每組測資有 N 個 Task (編號 1 ~ N)
題目會依序告知 N 個 Task 依賴的 Task 們
例如:
3
1 2
1 3
第 1 行表示有 3 個點
第 2 行為 Task 1
1 表示有 1 直接依賴到 Task 2
第 3 行為 Task 2
1 表示有 1 直接依賴到 Task 3
第 4 行為 Task 3
解法:
當作圖論解
單向圖,以 DFS 或 BFS 走訪計算最大值
題目有說測資不會出現 cycle
也就是若 A 依賴 B,B 不可能依賴 A
所以單純找單向的直接與間接依賴即可
程式(Java):
題意:
有若干個 Task
彼此間有相依關係,分成直接與間接
如: A depends on B, and B depends on C
則可以說 A 有 2 個依賴,B 1個,C 0 個
(單向,A 對 B不能算給 B)
要找出依賴最高的 Task
每組測資有 N 個 Task (編號 1 ~ N)
題目會依序告知 N 個 Task 依賴的 Task 們
例如:
3
1 2
1 3
第 1 行表示有 3 個點
第 2 行為 Task 1
1 表示有 1 直接依賴到 Task 2
第 3 行為 Task 2
1 表示有 1 直接依賴到 Task 3
第 4 行為 Task 3
0 表示沒有依賴
最後輸出最高依賴的編號
如上例輸出 1 (Task 1 有 2 依賴最高)
解法:
當作圖論解
單向圖,以 DFS 或 BFS 走訪計算最大值
題目有說測資不會出現 cycle
也就是若 A 依賴 B,B 不可能依賴 A
所以單純找單向的直接與間接依賴即可
程式(Java):
留言
張貼留言