Codeup 1985 任務排程

2021-10-23 18:23:56 字數 1137 閱讀 7692

讀入任務排程序列,輸出n個任務適合的一種排程方式。

輸入包含多組測試資料。

每組第一行輸入乙個整數n(n<100000),表示有n個任務。

接下來n行,每行第乙個表示前序任務,括號中的任務為若干個後序任務,表示只有在前序任務完成的情況下,後序任務才能開始。若後序為null則表示無後繼任務。

輸出排程方式,輸出如果有多種適合的排程方式,請輸出字典序最小的一種。

4

task0

(task1,task2)

task1

(task3)

task2

(null

)task3

(null

)

task0 task1 task2 task3
1.這道題目我們需要乙個結構體型別的優先佇列,和乙個對映map

2. 思路:可以在結構體中過載運算子 < 對佇列中的結構體變數進行排序,處理後的佇列輸出即可,

3. 先弄出完整的帶過載運算子函式的結構體來:

struct mytask

};

然後寫出處理函式,判斷輸入的任務後面是否還有任務,如果有任務就把後面每乙個任務對應的map 對映自增(使他們的優先順序變大)。最後把當前任務的優先順序從map中獲取出來,把對應的結構體壓入佇列,

這樣處理後,佇列排成了按照優先順序從小到大排列

code::

#include

#include

#include

#include

using

namespace std;

struct mytask};

mapint> mp;

priority_queue q;

void

myfun

(string &str)

} mytask.priority=mp[mytask.name]

; q.

push

(mytask);}

intmain()

int len=q.

size()

;for

(int i=

0;i}

201403 5 任務排程

問題描述 有若干個任務需要在一台機器上執行。它們之間沒有依賴關係,因此 可以被按照任意順序執行。該機器有兩個 cpu 和乙個 gpu。對於每個任務,你可以為它分配不 同的硬體資源 1.在單個 cpu 上執行。2.在兩個 cpu 上同時執行。3.在單個 cpu 和 gpu 上同時執行。4.在兩個 cp...

621 任務排程器

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

621 任務排程器

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