1樓:nealchen
時間問題通常都會測大資料,講個記憶體上的問題。
std::deque(以及預設引數的std::stack和std::queue)占用的記憶體相當於幾百個變數。所以開std::queue q[1e6]會導致MLE。
2樓:redegg
更新一下:
一些小優化:
取餘盡量把 x%p 寫成 x-x/p*p ,可以變快。
加減法後進行取餘的時候直接if判斷,除法和取餘都挺耗時間的,有時候優化不是很明顯。
寫函式時引數可以由 int a 改成 const int &a,加快讀取速度,有的函式遞迴較深時,可以把全域性變數寫進函式裡,也可以加快讀取速度。
原回答寫不好,struct都會被卡上天。
小的細節就是map盡量用find函式而不是直接像陣列一樣用防止mle,sqrt函式少呼叫。不要到處取模,必要的地方取模就可以,stl容器vector據說會在某些毒瘤圖論題中被卡建議用鏈式前向星,map和set要提前算好別mle了。
3樓:WangKX
好好學習一下各種容器,這裡我覺得你最該注意的是vector這個容器,因為這個容器是連續記憶體,用不好最容易拖慢效率;
好好捋一捋stl的脈絡,組成等等:
STL 的 vector 有哪些封裝上的技巧?
陳碩 試試正確實現 vec.push back vec.front 你就明白一些了。另外 sizeof vector 3 sizeof void 那麼 allocator 為什麼不佔空間? Milo Yip 很多時候我們都會自己實現和std vector相似的容器,例如RapidJSON裡的Valu...
有哪些C 大坑?
ll323 帶有universal quantifier的過載或者過載時發生的coercion比較容易造成一些意料之外的結果 include structAA constA auto main int prints Universal Constructor autoy x 修正此類錯誤需要給uni...
學C和C 必須掌握的庫有哪些?
對於C語言來說,應當掌握的當然是C語言的標準庫 對於C 語言來說,一定要掌握的是STL,其次是boost 然後就是各取所需,有很多優秀的第三方庫,找到了就直接拿來用,別重複造輪子。乾貨 國外程式設計師整理的 C 資源大全 CSDN.NET iverson ai 我試著回答一下 基礎的STL要會用 後...