一道巨大的模擬,因為每次都是從第乙個開始幹並且有順序,那麼就該用優先佇列了
順序問題只要過載一下運算子即可
cpu的任務如果幹了一部分後被踢出去了,又輪到它的時候它會接著乾而不是從頭開始
#include#includeac#include
#include
using
namespace
std;
long
long
num,at,rt,l;
//編號,到達時間,執行時間,級別
struct
task
return a.l
}} now,last;
long
long lt,nt;//
上乙個程式處理到的時候,目前已處理時間長度
priority_queue q;
intmain()
else
else
}lt=now.at;
}q.push(now);
}while(!q.empty())
return0;
}
P2278 HNOI2003 作業系統
寫乙個程式來模擬作業系統的程序排程。假設該系統只有乙個cpu,每乙個程序的到達時間,執行時間和執行優先順序都是已知的。其中執行優先順序用自然數表示,數字越大,則優先順序越高。如果乙個程序到達的時候cpu是空閒的,則它會一直占用cpu直到該程序結束。除非在這個過程中,有乙個比它優先順序高的程序要執行。...
P2278 HNOI2003 作業系統
寫乙個程式來模擬作業系統的程序排程。假設該系統只有乙個cpu,每乙個程序的到達時間,執行時間和執行優先順序都是已知的。其中執行優先順序用自然數表示,數字越大,則優先順序越高。如果乙個程序到達的時候cpu是空閒的,則它會一直占用cpu直到該程序結束。除非在這個過程中,有乙個比它優先順序高的程序要執行。...
P2278 HNOI2003 作業系統 堆
有若干個程序,每個程序有優先順序,執行時間,放入時間。如果乙個程序到達的時候cpu是空閒的,則它會一直占用cpu直到該程序結束。除非在這個過程中,有乙個比它優先順序高的程序要執行。在這種情況下,這個新的 優先順序更高的 程序會占用cpu,而老的只有等待。如果乙個程序到達時,cpu正在處理乙個比它優先...