題目:
思路全在**裡
#include#include#include#include#includeusing namespace std;
struct node
if(!q.empty())//這個就是當可以完整進行完的程序都解決了,那麼剩下的肯定是進行到一部分還沒有完全搞定的,那我們就強迫把某個程序分割成兩部分,並且更新剩下的執行時間並且重新放進優先佇列
q.push((node));
sum=da;
} while(!q.empty())//最後處理完還沒處理完的程式,輸出
}
P2278 HNOI2003 作業系統
寫乙個程式來模擬作業系統的程序排程。假設該系統只有乙個cpu,每乙個程序的到達時間,執行時間和執行優先順序都是已知的。其中執行優先順序用自然數表示,數字越大,則優先順序越高。如果乙個程序到達的時候cpu是空閒的,則它會一直占用cpu直到該程序結束。除非在這個過程中,有乙個比它優先順序高的程序要執行。...
P2278 HNOI2003 作業系統
一道巨大的模擬,因為每次都是從第乙個開始幹並且有順序,那麼就該用優先佇列了 順序問題只要過載一下運算子即可 cpu的任務如果幹了一部分後被踢出去了,又輪到它的時候它會接著乾而不是從頭開始 include include include include using namespace std long...
P2278 HNOI2003 作業系統
寫乙個程式來模擬作業系統的程序排程。假設該系統只有乙個cpu,每乙個程序的到達時間,執行時間和執行優先順序都是已知的。其中執行優先順序用自然數表示,數字越大,則優先順序越高。如果乙個程序到達的時候cpu是空閒的,則它會一直占用cpu直到該程序結束。除非在這個過程中,有乙個比它優先順序高的程序要執行。...