最短工期 25分

2021-10-10 21:11:17 字數 1443 閱讀 9630

乙個專案由若干個任務組成,任務之間有先後依賴順序。專案經理需要設定一系列里程碑,在每個里程碑節點處檢查任務的完成情況,並啟動後續的任務。現給定乙個專案中各個任務之間的關係,請你計算出這個專案的最早完工時間。

輸入格式:

首先第一行給出兩個正整數:專案里程碑的數量 n(≤100)和任務總數 m。這裡的里程碑從 0 到 n−1 編號。隨後 m 行,每行給出一項任務的描述,格式為「任務起始里程碑 任務結束里程碑 工作時長」,三個數字均為非負整數,以空格分隔。

輸出格式:

如果整個專案的安排是合理可行的,在一行中輸出最早完工時間;否則輸出"impossible"。

輸入樣例 1:

9120

1602

4035

1412

4135

2540

4694

7757

4682

784

輸出樣例 1:

18
輸入樣例 2:

450

1102

2213

1343

25

輸出樣例 2:

impossible
#include

#include

#include

#include

using

namespace std;

struct node

;map<

int, vector>mp;

queue<

int>q;

int n, m, cnt, earlytime, a, b, c;

int indegee[

100]

, maxtime[

100]

;void

topo()

}}intmain()

);indegee[b]++;

}for

(int i =

0; i < n;

++i)if(

!indegee[i]

) q.

push

(i);

topo()

;for

(int i =

0; i < n;

++i)

earlytime =

max(earlytime, maxtime[i]);

cnt == n ? cout << earlytime : cout <<

"impossible"

;return0;

}

7 1 最短工期 25 分

乙個專案由若干個任務組成,任務之間有先後依賴順序。專案經理需要設定一系列里程碑,在每個里程碑節點處檢查任務的完成情況,並啟動後續的任務。現給定乙個專案中各個任務之間的關係,請你計算出這個專案的最早完工時間。輸入格式 首先第一行給出兩個正整數 專案里程碑的數量 n 100 和任務總數 m。這裡的里程碑...

(拓撲排序)最短工期 25分

只適用於有向無環圖 有向無環圖一定有拓撲排序 把入度為0的點存放在佇列裡面 刪除該頂點連線的所有邊 解題步驟 記錄每個點的入度大小 把入度為0的點放入佇列中去 用乙個dist陣列存放路徑的大小,用cnt記錄頂點個數 刪除該頂點連線的所有邊,即每條邊對應的點的入度 1 再次把入度為0的點存放在佇列裡面...

未完成 7 13 最短工期 25 分

乙個專案由若干個任務組成,任務之間有先後依賴順序。專案經理需要設定一系列里程碑,在每個里程碑節點處檢查任務的完成情況,並啟動後續的任務。現給定乙個專案中各個任務之間的關係,請你計算出這個專案的最早完工時間。首先第一行給出兩個正整數 專案里程碑的數量 n 100 和任務總數 m。這裡的里程碑從 0 到...