#41107: C++詳解-Map


toseanlin@gmail.com (Dr. SeanXD)

學校 : 康橋雙語學校
編號 : 158065
來源 : [24.147.249.5]
最後登入時間 :
2024-11-30 22:22:32
e564. 00540 - Team Queue -- UVA | From: [220.136.105.176] | 發表日期 : 2024-07-04 10:04

宣告一個 map<string, int> 來存每一個編號的隊伍是哪個,Team Queue 可以使用一個二維陣列來實現。

需要宣告一個 map<int, int> 來存目前每一個隊伍在二維陣列中的位置,如果進行 ENQUEUE 的時候該隊伍的值為 0,則將一個新的一維陣列包含字串 Push_Back 到二維陣列中,並且將該隊伍的 map 值設定為二維陣列的大小也就是最後面。

進行 DEQUEUE 時就將二維陣列的 [0][0] 輸出並且將其刪除,每次刪除都要判斷第一個一維陣列還有沒有資料,如果沒有的話就將這個一維陣列刪除,並且要更新 Map 中的所有資料,可以使用 for(auto it:Map) 來更新資料。如果 it.second == 1 就代表這是剛剛刪掉的一維陣列,將其設為 0,如果不是 1 也不是 0 就將 Map 值 -1。

 

範例程式碼

 
ZeroJudge Forum