乙個專案由若干個任務組成,任務之間有先後依賴順序。專案經理需要設定一系列里程碑,在每個里程碑節點處檢查任務的完成情況,並啟動後續的任務。現給定乙個專案中各個任務之間的關係,請你計算出這個專案的最早完工時間。
首先第一行給出兩個正整數:專案里程碑的數量 n(≤100)和任務總數 m。這裡的里程碑從 0 到 n−1 編號。隨後 m 行,每行給出一項任務的描述,格式為「任務起始里程碑 任務結束里程碑 工作時長」,三個數字均為非負整數,以空格分隔。
如果整個專案的安排是合理可行的,在一行中輸出最早完工時間;否則輸出"impossible"。
9 12
0 1 6
0 2 4
0 3 5
1 4 1
2 4 1
3 5 2
5 4 0
4 6 9
4 7 7
5 7 4
6 8 2
7 8 4
18
4 5
0 1 1
0 2 2
2 1 3
1 3 4
3 2 5
impossible
#include using namespace std;
struct node ;
node v[105];
int gm[105][105]= ;
void init()
int main()
queueq;
for(int i=0; i=0)
}int res=0;
for(int i=0; ires)
res=v[i].time;
}cout
}
最短工期 25分
乙個專案由若干個任務組成,任務之間有先後依賴順序。專案經理需要設定一系列里程碑,在每個里程碑節點處檢查任務的完成情況,並啟動後續的任務。現給定乙個專案中各個任務之間的關係,請你計算出這個專案的最早完工時間。輸入格式 首先第一行給出兩個正整數 專案里程碑的數量 n 100 和任務總數 m。這裡的里程碑...
7 1 最短工期 25 分
乙個專案由若干個任務組成,任務之間有先後依賴順序。專案經理需要設定一系列里程碑,在每個里程碑節點處檢查任務的完成情況,並啟動後續的任務。現給定乙個專案中各個任務之間的關係,請你計算出這個專案的最早完工時間。輸入格式 首先第一行給出兩個正整數 專案里程碑的數量 n 100 和任務總數 m。這裡的里程碑...
(拓撲排序)最短工期 25分
只適用於有向無環圖 有向無環圖一定有拓撲排序 把入度為0的點存放在佇列裡面 刪除該頂點連線的所有邊 解題步驟 記錄每個點的入度大小 把入度為0的點放入佇列中去 用乙個dist陣列存放路徑的大小,用cnt記錄頂點個數 刪除該頂點連線的所有邊,即每條邊對應的點的入度 1 再次把入度為0的點存放在佇列裡面...