#41024: C++詳解-Map


toseanlin@gmail.com (Dr. SeanXD)

學校 : 康橋雙語學校
編號 : 158065
來源 : [24.147.249.5]
最後登入時間 :
2024-10-28 09:54:40
e942. pC. 數字排列 -- 2009大學學測推甄申請二階 | From: [220.136.106.26] | 發表日期 : 2024-06-26 09:03

收完資料之後可以先進行一次排序,記得使用 Long Long Int。然後可以跑一個 DFS,並且宣告一個 Map 來存目前加過哪些數字、還有一個 Vector 來存目前加的數字。

如果 Vector.size() == N 就可以將目前的 Vector 存到一個二維陣列中,這個二維陣列為答案。否則就跑一個 For迴圈 從 0 到 N-1,如果目前的數字在 Map 中沒有紀錄,就再互叫一次 DFS,只是這次將 Map[數字]++,並且將 Vector.push_back(數字)。呼叫完之後記得要將 Map[數字]– 和 Vector.pop_back()。

最後輸出二維陣列中的資料。

 

範例程式碼

 
ZeroJudge Forum