国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

【Bzoj1216】操作系統

2019-11-11 02:18:38
字體:
來源:轉載
供稿:網友

1216: [HNOI2003]操作系統

Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 824  Solved: 459[Submit][Status][Discuss]

Description

寫一個程序來模擬操作系統的進程調度。假設該系統只有一個CPU,每一個進程的到達時間,執行時間和運行優先級都是已知的。其中運行優先級用自然數表示,數字越大,則優先級越高。如果一個進程到達的時候CPU是空閑的,則它會一直占用CPU直到該進程結束。除非在這個過程中,有一個比它優先級高的進程要運行。在這種情況下,這個新的(優先級更高的)進程會占用CPU,而老的只有等待。如果一個進程到達時,CPU正在處理一個比它優先級高或優先級相同的進程,則這個(新到達的)進程必須等待。一旦CPU空閑,如果此時有進程在等待,則選擇優先級最高的先運行。如果有多個優先級最高的進程,則選擇到達時間最早的。

Input

輸入文件包含若干行,每一行有四個自然數(均不超過108),分別是進程號,到達時間,執行時間和優先級。不同進程有不同的編號,不會有兩個相同優先級的進程同時到達。輸入數據已經按到達時間從小到大排序。輸入數據保證在任何時候,等待隊列中的進程不超過15000個。

Output

按照進程結束的時間輸出每個進程的進程號和結束時間

Sample Input

1 1 5 32 10 5 13 12 7 24 20 2 35 21 9 46 22 2 47 23 5 28 24 2 4

Sample Output

1 63 195 306 328 344 357 402 42

這題...比較裸啊。開優先隊列直接模擬就行了。
#include<cstdio>#include<queue>#define min(a,b) ((a)<(b)? (a):(b))using namespace std;const int maxx = 15000 + 10;struct PRogram{    int id,come,time,imp;    program(int id=0,int come=0,int time=0,int imp=0):    id(id),come(come),time(time),imp(imp){}; };bool Operator < (program a,program b){    if(a.imp!=b.imp) return a.imp<b.imp;    return a.come>b.come;}priority_queue<program> que;int final;int main(){    //freopen("system.in","r",stdin);    //freopen("system.out","w",stdout);        int id,come,time,imp;        while(~scanf("%d%d%d%d",&id,&come,&time,&imp))    {        while(!que.empty()&&final<come)        {            program now=que.top();            que.pop();                    if(final<now.come)             final=now.come;                    int dis=min(now.time,come-final);            now.time-=dis; final+=dis;                    if(now.time) que.push(now);            else printf("%d %d/n",now.id,final);        }        que.push(program(id,come,time,imp));    }        while(!que.empty())    {        program now = que.top();        que.pop();        final+=now.time;        printf("%d %d/n",now.id,final);    }         return 0;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长阳| 秭归县| 凭祥市| 平潭县| 云阳县| 兴城市| 安新县| 恭城| 平阳县| 兴文县| 太白县| 宜兰市| 沧州市| 荆门市| 鹿邑县| 南丰县| 孟津县| 靖宇县| 莫力| 渝北区| 嵊泗县| 开鲁县| 西充县| 葵青区| 永泰县| 嘉祥县| 论坛| 平潭县| 潍坊市| 双鸭山市| 汉阴县| 华安县| 阿克| 石屏县| 日喀则市| 长海县| 明星| 莱阳市| 叙永县| 德惠市| 襄汾县|