ACM c 在oj上做題時遇到過的坑

2022-08-20 17:24:15 字數 953 閱讀 8112

前言:這裡每個坑都用了我超過1個小時,好多水題都是因為這些小坑卡了1個小時,賊氣

沒辦法,coding能力比較弱。記下來這些教訓,也讓後人也看看,避開一些坑。不定期更新

最後更新日期:2018-08-01

1.cin\cout太慢導致超時

找了很久,發現要兩個命令一起用。

ios::sync_with_stdio(false

);cin.tie(0);

2.變數定義的問題(全域性,區域性)

開始acm道路之後,我習慣了把很多變數放到全域性變數,省去函式之間引用傳遞的麻煩,

需要初始化的時候用memset,這個做法方便但其實有不安全的地方。

那就是遞迴函式!因為在遞迴函式中,某個變數在某次遞迴中都有乙個值,可是如果

將它宣告為全域性變數,那該變數就不隨著遞迴函式而改變,從而導致同樣的**,

函式內使用區域性變數的**a了,而全域性變數的wa了。

3.用優先佇列的時候,「greater」與 「>」中間要有乙個空格,這個坑只花了我3秒

4.在結構體、類中需要儲存字串的時候,可能導致的記憶體溢位錯誤(re)

我們知道,可以用 string=char來初始化字串。於是有次做字典樹,用節點儲存乙個字串,我在節點中宣告了

個string變數,在insert的時候先new node(),然後直接讓string=char導致re。這是因為new的時候不知道

string占用的空間大小所以沒分配(推斷,應該是),解決方法,不要在node結構體/類中宣告string,

而宣告char* val; 在需要賦值的時候,使用以下**來將字串儲存到節點中。

1     p->val = (char*)malloc((strlen(v)+1)*sizeof(char

));//p是指向node的指標,v是待儲存的字串

2 strcpy(p->val,v);

處理資料(文字)時遇到過的坑

訓練詞向量時,本來就是準備好格式一定訓練文字,然後呼叫gensim開始訓練。但是訓練過程中出現了這樣的么蛾子,編碼坑 unicodedecodeerror utf8 codec can t decode bytes in position 4229 4231 invalid continuation...

使用TImageList時遇到過的蠢問題

一般的windows程式,會有工具欄圖示 選單圖示,工具欄和選單欄圖示由於顯示效果的需要,尺寸一般是不一樣的,工具欄的大,選單的小。一般的選單或者工具欄又會有可用和不可用兩種狀態,所以又需要準備彩色和灰色兩種圖示。這樣一來,同乙個圖示,實際上需要大小不同 可用與不可用的四個圖。以前我就為每乙個圖示準...

在選擇資料庫的路上,我們遇到過哪些坑?(1)

編者按 你會怎麼選擇資料庫,是關聯式資料庫 xml 資料庫 資源描述框架 rdf 還是圖形資料庫?這篇演講深入而生動地 了各種選擇。本文系國內 itom 管理平台 oneapm 編譯呈現。備註 在去年十月於舊金山舉辦的 graphconnect 大會上,factgem 公司首席技術官 clark r...