就是堆的應用,實現的時候會有點奇怪的技巧
now作為當前時間,順序列舉每乙個程序的到來,注意在每乙個程序來之前要處理完成前面的所有程序!
注意放乙個哨兵元素lev為-inf,rest為inf,防止bug,
#include#include#include#include#include#includeusing namespace std;
const int inf=0x3f3f3f3f;
inline int read()
struct aa
int now=0;
aa tmp;
tmp.rest=inf;
tmp.lev=-inf;
heap.push(tmp);
for (int i=1;i<=tot;i++)
aa v=heap.top();
heap.pop();
v.rest-=now1-now;
heap.push(v);
heap.push(a[i]);
now=now1; }
while (heap.top().lev!=-inf)
return 0;
}
BZOJ1216 作業系統(堆,模擬)
寫乙個程式來模擬作業系統的程序排程。假設該系統只有乙個cpu,每乙個程序的到達時間,執行時間和執行優先順序都是已知的。其中執行優先順序用自然數表示,數字越大,則優先順序越高。如果乙個程序到達的時候cpu是空閒的,則它會一直占用cpu直到該程序結束。除非在這個過程中,有乙個比它優先順序高的程序要執行。...
BZOJ1216 作業系統(堆,模擬)
寫乙個程式來模擬作業系統的程序排程。假設該系統只有乙個cpu,每乙個程序的到達時間,執行時間和執行優先順序都是已知的。其中執行優先順序用自然數表示,數字越大,則優先順序越高。如果乙個程序到達的時候cpu是空閒的,則它會一直占用cpu直到該程序結束。除非在這個過程中,有乙個比它優先順序高的程序要執行。...
bzoj1216 作業系統 優先佇列模擬
time limit 10 sec memory limit 162 mb submit 1172 solved 649 submit status discuss 寫乙個程式來模擬作業系統的程序排程。假設該系統只有乙個cpu,每乙個程序的到達時間,執行時間和執行優先順序都是已知的。其中執行優先順序...