浙大PAT甲級 1017

2021-08-18 03:52:14 字數 651 閱讀 2966

銀行佇列:

(卻沒用到佇列

#include #include #include #include #include #include using namespace std;

int n, k;

vectorline;

struct customer;

bool compare(customer c1,customer c2)

return minline;

}int main()

for(i=0;i>arrivestring>>cust.time;

arriveint = timetoint(arrivestring);

if(arriveint<=61200)

}int cnt = c.size();

sort(c.begin(),c.end(),compare);

for(i=0;i61200) //客戶只要在17:00之前到達銀行,那麼即使視窗的結束時間在17:00以後,那銀行還是需要給客戶服務的

// break;

if(c[i].arrive

}printf("%.1f", waittime/(cnt*60.0));

return 0;

}

PAT甲級1017解法

這題也出現了時間,我們根據上一題的經驗同樣把時分秒轉換為自零點零分零秒開始經過的秒數。這題也出現了視窗排隊,之前也有題目可以參考,而且這次每個視窗最多排乙個,更加簡單。另外,之前用過的sort排序這裡也有用處。本來我的想法是先填滿所有視窗,將沒排進視窗的統一放在乙個佇列中儲存,但這個方法比較複雜,而...

浙大pat甲級 1024

可用3個vector來進行處理,先將輸入的數字都壓入到第1第2個vector中,從i 0到k迴圈判斷是否為對稱數,如果不是對稱數則將其與倒轉數相加,並將得到的每一位數加入到第三個vector的頭部,並將新的第三個vector重新賦值給第一第二,直到該數為對稱數或i k結束迴圈。ac include ...

浙大PAT甲級 1039

一開始想到用map 但是會超時。由於題目中的名字由三個字母和乙個數字組成,因此有26 26 26 10種,因此可以用hash來做。使用setmm max max 26 26 26 10 5 同時輸入名字時也應改為char s 5 scanf來輸入。ac include include include...