c 有哪些STL容器在NOIP提高組中會被卡?

時間 2021-05-13 04:14:16

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要會用 後...