bzoj 1216 HNOI2003 作業系統

2021-07-30 17:55:09 字數 684 閱讀 2111

一開始想的用heap維護一下,但是發現輸出不好搞,而且維護兩個值的heap好像不怎麼會做,然後學習了一發優先佇列,挺好用的,直接模擬就好了,用優先佇列維護一下優先順序和到達時間就好了。

#include

#include

#include

#include

#include

#define fo(i,a,b) for(int i=a;i<=b;i++)

#define fd(i,a,b) for(int i=a;i>=b;i--)

using

namespace

std;

struct node

};priority_queueq;

int t,a,b,c,d;

inline

void add(int a,int b,int c,int d)

int main()

x=q.top();

q.pop();

v=x.tex;

}add(a,b,c,d);

if (flag)continue;

x.tex-=(b-t);

q.push(x);

t+=(b-t);

}while (!q.empty())

return

0;}

BZOJ 1216 HNOI2003 作業系統

time limit 10 sec memory limit 162 mb submit 886 solved 492 submit status discuss 寫乙個程式來模擬作業系統的程序排程。假設該系統只有乙個cpu,每乙個程序的到達時間,執行時間和執行優先順序都是已知的。其中執行優先順序用...

bzoj1216 HNOI2003 作業系統

time limit 10 sec memory limit 162 mb submit 751 solved 419 submit status discuss 寫乙個程式來模擬作業系統的程序排程。假設該系統只有乙個cpu,每乙個程序的到達時間,執行時間和執行優先順序都是已知的。其中執行優先順序用...

BZOJ1216 HNOI2003 作業系統

我對模擬的理解 題目傳送門 不茲磁多執行緒的系統不是好系統 對於每個程序,我們都記錄下關於它的五個引數 程序號,起始時間,持續時間,終結時間以及優先順序。按照題意,優先順序越大越應優先執行,同優先順序的比起始時間,用堆來維護已經進來排隊的程序,然後按題意模擬即可。因為學長說想要 noi 金牌,堆肯定...