PTA 拓撲排序

2022-06-27 07:36:10 字數 1225 閱讀 9201

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

首先第一行給出兩個正整數:專案里程碑的數量 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

題意 : 問你最短工期是多少,那麼想想這個最短工期要怎麼得到,這些全部的任務組成乙個專案,那麼就是需要我們去完成全部的任務,並且需要只有當前任務完成後才能去開始下乙個任務。

那麼我們就可以把完成任務所需最多的時間當成最短的時間即可。

**示例 :

#define ll long long

const int maxn = 1e6+5;

const double pi = acos(-1.0);

const int inf = 0x3f3f3f3f;

int n, m;

struct node

};vectorve[105];

int deg[105], ans[105];

queueque;

int cnt = 0, an = 0;

void fun()

}}int main()

for(int i = 0; i < n; i++)

fun();

if (cnt != n)

else printf("%d\n", an);

return 0;

}

PTA最短工期 拓撲排序

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

PTA刷題 甲級 拓撲排序

拓撲排序以前不考,現在考的頻率好高。其實沒啥難的,抓住一點 入度為0時,才能被輸出 或者被選中,乙個意思 所以要用個int indegree來維護入度的數量。當要我們判斷乙個圖能不能是拓撲排序 即沒有環 就是看入過佇列的節點數是不是就是n。例題 大意 給你乙個圖,讓你判斷能不能拓撲排序。輸入資料 輸...

PTA 任務排程的合理性 拓撲排序

題意 假定乙個工程專案由一組子任務構成,子任務之間有的可以並行執行,有的必須在完成了其它一些子任務後才能執行。任務排程 包括一組子任務 以及每個子任務可以執行所依賴的子任務集。比如完成乙個專業的所有課程學習和畢業設計可以看成乙個本科生要完成的一項工程,各門課程可以看成是子任務。有些課程可以同時開設,...