ZCMU1577 食堂的蛋餅(模擬)

2021-08-29 18:22:25 字數 1534 閱讀 6209

題目鏈結

time limit: 1 sec  memory limit: 128 mb

submit: 44  solved: 6

[submit][status][web board]

早飯吃什麼,這是乙個深奧的問題。學校貌似好吃的也就乙個雞蛋餅,然而學校的蛋餅經常供不應求,就算排在隊伍第一無奈蛋餅還在鍋裡,還是要等,但是站著第(mao)一(keng)不買(la)早(shi)飯是不行的,所以阿姨會讓後面的買包子不買蛋餅的同學先來買,等蛋餅出鍋了在按正常的隊伍賣早飯,一旦蛋餅不夠則優先讓買包子的買。愛睡懶覺的小明總是來得較晚所以他想知道他如果他來買早飯大概需要排多久的隊伍,好知道會不會遲到。

假設食堂只有乙個視窗,從6.30開始**,初始蛋餅有10個,包子無限量,大廚每隔10分鐘可以做出10個蛋餅,因為蛋餅暢銷所以大廚一直在做,若**量夠則每個學生需要花費1分鐘來完成購買。我們已知今天買早飯的n個學生來的時間ti和買早飯的種類ki(1表示蛋餅,2表示包子)以及數量si(每個學生只賣一種不會同時買包子和蛋餅),現在給出小明來買早飯的時間,種類和數量,請幫忙計算需要排多久的隊伍

多組測試資料

第一行包括買早飯的人的數量n(1<=n<=180)

接下來有n行,每行三個資料ti(06:00<=ti<=09:00),ki(1或2),si(1<=si<=100)分別表示來買的人時間種類以及數量,最後一行則表示來的是小明(保證時間沒有重複)

輸出小明買好早飯的時間,格式參照輸入時間

06:30 1 2

06:32 2 4

06:31 1 3

06:33 1 5

06:34 1 1

06:41

【解題思路】

根據6:30-24:00之間每分鐘是否有人能夠買蛋餅或者包子比較容易。v記錄佇列中的人,這裡就幾個注意點。

(1)每隔10分鐘,會多10個蛋餅,所以now+=10。

(2)已經買到蛋餅或者包子的人要從佇列中刪去,以免對後面的情況造成影響。

(3)如果第i個人買的蛋餅數不夠已有的蛋餅數,若他後面有買包子的人,則讓買包子的人優先;若沒有,他則要一直等待,這裡只需要用乙個eggflag就能涵蓋這兩種情況。

【**】

#includeusing namespace std;

struct node

;bool cmp(node a,node b)

sort(v.begin(),v.end(),cmp);

int now=0,ans,flag=0;

for(int i=390;i<=24*60;i++)

v.erase(v.begin()+j);

break;

}else if(v[j].k==1 && v[j].time<=i && eggflag==0)

v.erase(v.begin()+j);

break;}}

}if(flag)break;

}ans++;

printf("%02d:%02d\n",ans/60,ans%60);

}return 0;

}

zcmu 1577 食堂的蛋餅(模擬)

time limit 1 sec memory limit 128 mb submit 47 solved 7 submit status web board 早飯吃什麼,這是乙個深奧的問題。學校貌似好吃的也就乙個雞蛋餅,然而學校的蛋餅經常供不應求,就算排在隊伍第一無奈蛋餅還在鍋裡,還是要等,但是站...

zcmu 1577 食堂的蛋餅(思維)

題目 time limit 1 sec memory limit 128 mb submit 52 solved 10 submit status web board 早飯吃什麼,這是乙個深奧的問題。學校貌似好吃的也就乙個雞蛋餅,然而學校的蛋餅經常供不應求,就算排在隊伍第一無奈蛋餅還在鍋裡,還是要等...

51nod 1577 異或湊數

從左到右一共n個數,數字下標從1到n編號。一共m次詢問,每次詢問是否能從第l個到第r個數中 包括第l個和第r個數 選出一些數使得他們異或為k。資料量比較大。輸入請用掛 1 23 4 5 6 7 8 intread 輸出請用puts input 單組測試資料。第一行乙個整數n 0output m行,每...