#41949: c++ NA(15%) 解法


henry.rem.rem@gmail.com (*ฅ́˘ฅ̀*)

學校 : 臺北市立松山高級中學
編號 : 278368
來源 : [203.72.64.125]
最後登入時間 :
2024-11-28 10:40:40
n805. 股票交易 (Stocks) -- TOI練習賽202310潛力組第1題 | From: [1.161.63.84] | 發表日期 : 2024-09-12 20:49

如果你原本是在每次輸入後

暴力遍歷整個容器處理未賣出的股票

可以考慮換個方法

由目前最低價格的股票開始往上找

直到遇到不該賣的股票價格就停止遍歷,省時間

例如以priority_queue<pair<int, int>>作為用來儲存未賣出股票價格及其購入時間的容器

priority_queue會自動按照大小排列數據

預設是降序

但我們需要的是升序

所以宣告時用priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>>

令其以升序排列

接下來每當遇到可賣出的股票

就記錄當下時間

並pop()掉該股票

以上owo

 
ZeroJudge Forum