某工程包含n個(gè)任務(wù)(編號(hào)為0~n-1),每天可以有多個(gè)任務(wù)同時(shí)進(jìn)行。某些任務(wù)之間有依賴(lài)關(guān)系,如圖a所示,任務(wù)4依賴(lài)于任務(wù)1,任務(wù)1依賴(lài)于任務(wù)2。即任務(wù)2完成后才可以開(kāi)始任務(wù)1,任務(wù)1完成后才可以開(kāi)始任務(wù)4。不存在一個(gè)任務(wù)依賴(lài)于多個(gè)任務(wù),或多個(gè)任務(wù)依賴(lài)于同一個(gè)任務(wù)的情況。
現(xiàn)已對(duì)該工程的依賴(lài)關(guān)系進(jìn)行了梳理,結(jié)果如圖b所示,標(biāo)記“T”表示依賴(lài)關(guān)系需保留,標(biāo)記“F”表示依賴(lài)關(guān)系需刪除。
根據(jù)每個(gè)任務(wù)完成所需的天數(shù)和梳理后的依賴(lài)關(guān)系,編寫(xiě)程序,首先刪除標(biāo)記為“F”的依賴(lài)關(guān)系,然后計(jì)算工程最快完成所需的天數(shù),并以工程最快完成所需的天數(shù)為期限,計(jì)算每個(gè)任務(wù)最晚必須開(kāi)始的時(shí)間。
請(qǐng)回答下列問(wèn)題:
(1)若某工程有6個(gè)任務(wù),任務(wù)間依賴(lài)關(guān)系如圖a所示,完成任務(wù)0~5所需天數(shù)分別為2,1,3,5,1,6,則工程最快完成需要
8
8
天。
(2)定義如下erase(lst)函數(shù),參數(shù)lst列表的每個(gè)元素表示一個(gè)依賴(lài)關(guān)系。函數(shù)的功能是刪除標(biāo)記為“F”的依賴(lài)關(guān)系,返回保留的依賴(lài)關(guān)系的個(gè)數(shù)。
若lst列表依次存儲(chǔ)圖b所示的依賴(lài)關(guān)系,如lst[0]為[0,5,‘T’],調(diào)用erase(lst)的數(shù),則語(yǔ)句
“l(fā)st[i]=lst[j]”的執(zhí)行次數(shù)為
1
1
。
(3)實(shí)現(xiàn)上述功能的部分Python程序如下,請(qǐng)?jiān)趧澗€處填入合適的代碼。