我要吃飯!
time limit: 2000ms
space limit: 32mb
小明是我xjtu大二的一名同學,大二同學課多,上午經常是12點放,有時候在中二上課,趕到食堂的時候大家懂的。
小明做為乙個資深rush型吃貨對於吃什麼沒什麼講究,熱噴噴的飯只要吃到肚子裡心裡是都暖洋洋的。
所以他希望盡可能快得吃到飯。
現在食堂裡面有p個視窗(它們從0開始編號),每個視窗有1個隊伍,每個就餐的同學分別有自己的想要吃若干樣的東西。小明需要選擇乙個能讓他最快吃上飯的隊伍站到後面。
已知今天食堂**k種食物,每種食物有自己的名字,假設他們在各個視窗裡面都有銷售且擺放位置是一樣的。作為乙個有geek精神的好同學,做事自然要精益求精,所以師傅去盛這些菜的時間差異也是要計算在內的。
已知**在為每個同學打飯時都額外需要w秒的時間來詢問同學需要什麼並打卡。
已知一大批同學(共n個,其中不含小明)的到達時間和心中所求,小明假設所有同學都和他一樣,都希望早吃上飯,並且足夠聰明。
請問小明應該如何選擇站在那個隊伍裡面?(如果多個佇列可以達到同樣的時間,那麼選擇編號小的佇列,其他同樣也一樣)
1,xjtu的同學在食堂的素質是有口皆碑的,自然沒有插隊的事情發生。
2,假設我交採用了新型的結合社交網路的電子點餐技術,所有人都提前公布了自己想吃什麼(不撒謊的),同學們可以通過手機應用與食堂的基礎設定瞬間知道其他人都排在哪個佇列裡面、都想吃什麼,且大家都足夠聰明,可以瞬間做出決策。
3,不考慮從做出決策到走進佇列的時間。
4,假設我交食堂**充足,不會出現意外斷餐等極端情況。
5,最重要的簡化:同一時間到達的同學不是觀察到相同的佇列情況並做選擇,而是按照他們在輸入資料中的先後位置,依次決定自己的選擇,在決定後,後面的同學再根據新的情況做選擇。即假設食堂的門很窄一次只能進乙個人。(小明是主角,自然是同一時間內最早到的那個)
6,每個時刻都是打完飯的同學立刻離開,然後打飯的同學才獲取資料進行判斷。
7,乙個**一次只能為乙個同學打飯。
8,不會有人到食堂去點食堂今天不提供的菜式。
9,假設沒有人什麼也不吃,故意去排隊玩。
採用標準螢幕輸入。
所有輸入資料用空格將開,如沒有特別說明,資料都是非負整數。
第1行:
隊伍數量p,食物種類k,同學數量n,**的詢問時間w。
第2行到第k+1行(共k行):
食物的名稱(字串,內部沒有空格),**一次所需時間
第k+2行:
小明的到達時間t,想要吃的東西數量m,以及m個食物的名稱
第k+3行到第k+n+2行(共n行):
同學的到達時間ti,想要吃的東西數量mi,以及mi個食物的名稱
採用標準螢幕輸出。
第一行:
兩個整數分別表示:小明應該選的隊伍編號(從0到p-1),小明拿到飯的最早時間。
第二行:
乙個整數表示最後乙個拿到飯的同學拿到飯的時間。
p<=20, k<=20, n<=50000
食物名稱長度<=16位元組,且食物名稱內部沒有空格。
m<=4,所有時間(詢問時間,**時間,到達時間)及其計算結果均在32位整數範圍內。
注意:對於沒有明確說明的情況,輸入資料不做任何保證,所以你的程式要能有足夠的健壯性。
2 3 5 2
rice 1
tofu 3
fried_tomato 2
9 2 rice tofu
2 2 rice tofu
4 3 fried_tomato tofu rice
12 1 fried_tomato
8 1 rice
8 2 rice tofu
1 18
21
樣例分析:
第1個到達的同學是 2 2 rice tofu
當前各個隊列為空,於是他選擇了編號最小的0號視窗。
第2個到達的同學是 4 3 fired_tomato tofu rice
此時0號視窗需要再等4秒,1號視窗不需要等,於是他選擇1號視窗。
第3個到達的同學是 8 1 rice
此時第1個到達的同學離開。
當前0號視窗需要再等0秒,1號視窗需要等4秒,選擇0號視窗。
第4個到達的同學是 8 2 rice tofu
當前0號視窗需要等3秒,1號視窗需要等4秒,選擇1號視窗。
第5個到達的是小明 9 2 rice tofu
當前0號視窗需要等8秒,1號視窗需要等3秒,選擇1號視窗。
11秒時第3個同學離開。
第6個到達的同學是 12 1 fired_tomato
此時第2個同學離開。
當前0號視窗需要等5秒,1號視窗需要等6秒,選擇0號視窗。
至此所有同學均進入了或進入過佇列。
17秒時第4個同學拿到飯離開。
18秒時小明拿到飯。
21秒時最後乙個同學拿到飯。
待招新結束後給出
我要吃串串香
順利爆0 這次考試太倉促了一點。ac自動機的模板都還沒有寫對。就開始考試了 一開始就抱著乙個0000000000000000000的心態去考試,一看,只會強版暴力。覺得c out 0 c ou t 0 分都要多一些。t1 自己寫了乙個n n k的dp,覺得,樣例都跑了1秒。果斷co ut 0 cou...
Linux系統為什麼要吃掉我的「記憶體」
在windows下資源管理器檢視記憶體使用的情況,如果使用率達到80 以上,再執行大程式就能感覺到系統不流暢了,因為在記憶體緊缺的情況下使用交換分割槽,頻繁地從磁碟上換入換出頁會極大地影響系統的效能。而當我們使用free命令檢視linux系統記憶體使用情況時,會發現記憶體使用一直處於較高的水平,即使...
我的 OLAP (C )實現 (自製解析核心)
一 我的olap 採用星形 方式構建 關鍵 名詞 解釋 1.維度 分為 維度 名稱,維度值,2 維度值,維度值 存在 上下級 關係,而 3維度等級 劃分維度值 乙個 集合名稱 一般,上下級 關係 資料 都 在 不同的 維度等級 維度 等級的 鏈狀 結構 4.指標 關心的資料 5.實體表 裝他媽的資料...