題意 :乙個人開了一家炒飯館,炒飯原則是這樣的,一次最多炒k個相同種類的炒飯,消耗t單位的時間。優先按隊伍中的順序處理,如果在我剛準備炒這一鍋飯的時候或之前,你來這定飯,我可以幫你炒,否則在我炒的時候不准接單。也就是每次炒飯盡量多炒,但是不准多餘,輸入每個人來的時間,所需飯的種類以及個數,一次輸出每個人離開的時間。
題解 : 弄懂題意是重點
舉個例子,比如每次可以炒5份,每次5分鐘。
第乙個顧客08:00進來,點了2份a,
第二個顧客08:04進來,點了3份a。
在08:00開始炒的話,由於這個時候第二個顧客還沒進來,所以就只炒2份,第乙個顧客在08:05離開,這時才炒第二個的3份,所以第二個離開時間是08:10。
同樣是每次可以炒5份,每次5分鐘。
第乙個顧客08:00進來,點了6份a,
第二個顧客08:01進來,點了5份b,
第三個顧客08:02進來,點了4份a。
同樣地,先炒5份給第乙個,還差乙份,這是已經是08:05了,第三個顧客也進來了,所以這時直接炒5份a(因為會盡可能多地炒),08:10第乙個和第三個可以同時離開。接著才炒第二個的。
我的解法是從第乙份飯開始考慮,如果我多炒且後面的人能接受的話就給你,你的需求就減少我多炒的份數,注意更新鍋子在用的時間,以及最後時間可能超過24小時,從0開始重新記。
**:#include
#include
struct co
cun[1005];
int mark[1005];
int maxx ( int a, int b )
int main()
int max = 0;
for(int i = 1; i <= m; i++)
if(cun[i].now < 0)
if(cun[j].now <= cun[i].now)
else
j++;
} }
mark[i] = cun[i].t;
max = maxx(cun[i].t,max);
}for(int i = 1; i <= m; i++)
}
}
HDU 5983 模擬魔方 模擬
題意是說給定乙個 2 2 魔方的各個面的情況,問是否能轉動不超過一次使得魔方復原。思路是先在輸入的時候統計一下已完成的面數,要想以最多一次的轉動使得魔方復原,那麼已完成的面數只能是 2 面或者 6 面,此處可剪枝。若已完成 6 面,那麼一定可以復原 若已完成 2 面,則要用一次轉動完成其他六面,開始...
模擬 簡單模擬處理邊界 HDU 2525
這題做起來有些煩躁,可能是題意沒有理解清楚吧。題意 造出來的士兵第一天沒有攻擊力,但可以取樣,且要消耗一天的生命,共 d 天生命。造乙個士兵需要 k 天,k 1 天時可以有攻擊力,造到 k 天時相當於成活士兵的第一天。剛開始的士兵為第一天的士兵,沒有攻擊力,但可以取樣。總共模擬 x 天。資料較大,採...
幾何模擬 hdu 3286
暴力不解釋 include include include include include include include include include include include include include include includeusing namespace std defin...