201403 5 任務排程

2021-08-10 16:18:18 字數 898 閱讀 7061

問題描述

有若干個任務需要在一台機器上執行。它們之間沒有依賴關係,因此 可以被按照任意順序執行。

該機器有兩個 cpu 和乙個 gpu。對於每個任務,你可以為它分配不 同的硬體資源:

1. 在單個 cpu 上執行。

2. 在兩個 cpu 上同時執行。

3. 在單個 cpu 和 gpu 上同時執行。

4. 在兩個 cpu 和 gpu 上同時執行。

乙個任務開始執行以後,將會獨佔它所用到的所有硬體資源,不得中 斷,直到執行結束為止。第 i 個任務用單個 cpu,兩個 cpu,單個 cpu 加 gpu,兩個 cpu 加 gpu 執行所消耗的時間分別為 a

i,bi,c

i 和 d

i。 現在需要你計算出至少需要花多少時間可以把所有給定的任務完成。

輸入格式

輸入的第一行只有乙個正整數 n(1 ≤ n ≤ 40), 是總共需要執行的任 務個數。

接下來的 n 行每行有四個正整數 a

i, b

i, c

i, d

i(ai, b

i, c

i, d

i 均不超過 10), 以空格隔開。

輸出格式

輸出只有乙個整數,即完成給定的所有任務所需的最少時間。

樣例輸入3

4 4 2 2

7 4 7 4

3 3 3 3

樣例輸出

7樣例說明

有很多種排程方案可以在 7 個時間單位裡完成給定的三個任務,以下是其中的一種方案:

同時執行第乙個任務(單 cpu 加上 gpu)和第三個任務(單 cpu), 它們分別在時刻 2 和時刻 3 完成。在時刻 3 開始雙 cpu 執行任務 2,在 時刻 7 完成。

題解:搜尋。

621 任務排程器

621.任務排程器 給定乙個用字元陣列表示的 cpu 需要執行的任務列表。其中包含使用大寫的 a z 字母表示的26 種不同種類的任務。任務可以以任意順序執行,並且每個任務都可以在 1 個單位時間內執行完。cpu 在任何乙個單位時間內都可以執行乙個任務,或者在待命狀態。然而,兩個相同種類的任務之間必...

621 任務排程器

給你乙個用字元陣列 tasks 表示的 cpu 需要執行的任務列表。其中每個字母表示一種不同種類的任務。任務可以以任意順序執行,並且每個任務都可以在 1 個單位時間內執行完。在任何乙個單位時間,cpu 可以完成乙個任務,或者處於待命狀態。然而,兩個 相同種類 的任務之間必須有長度為整數 n 的冷卻時...

621 任務排程器

2020 06 12 任務排程器 給定乙個用字元陣列表示的 cpu 需要執行的任務列表。其中包含使用大寫的 a z 字母表示的26 種不同種類的任務。任務可以以任意順序執行,並且每個任務都可以在 1 個單位時間內執行完。cpu 在任何乙個單位時間內都可以執行乙個任務,或者在待命狀態。然而,兩個相同種...