最近發現打暴力(還有夢想中的正解)都會打錯,決定好好總結一下各類坑比錯誤QAQ數組
- 必定要好好看數據範圍,接近
int
類型上限,若是要求和,必定要開long long
而且改大你的inf
值(TAT暴力分流失)
- 提交以前,好好看看你的輸出,有沒有少或者多,而且檢查格式錯誤。
- 對於後面的點,若是要混分的話,必定要注意數組的大小!!!(NOI2017同步賽和8.4的都少了10分QAQ)(NOI2018同步賽又少了 20 分,之後不要慫空間直接大力開數組就行啦)
- \(Floyd\)的循環必定要記得 \(*k\) 必定要在最外層!!!
- 必定要認真讀題,看看是要輸出第一個仍是要輸出幾個答案!!!
- 必定要多測幾組數據,並且要反常規的數據!
- 必定要刪掉調試信息,最後10分鐘編譯一下,測下樣例!
- 拓撲排序必定要從入度爲0的點進去!Tarjan縮點(強連通份量)必定是有向圖!!
- 有時候實在想不到\(dp\)就去作貪心算了!
- 費用流建反向弧的時候必定要記住,費用爲相反數,流量爲0!
- \(Splay\)查找第\(k\)大的時候,必定要記得先減,在向下走,否則會減下面的!!!
- \(Splay\)查找第\(k\)大的時候,必定要記得先下放標籤啊!!!各類沒有先\(Splay\)的東西,都要\(push \ down\)啊!!!
- \(Treap\)刪除的時候,遞歸下去,走的應該是
ch[u][d^1]
,本身被旋到另一個地方了!!(很容易錯!)並且刪除的時候,找到同樣的值就return
!
- \(FFT\)蝴蝶變換那裏,奇數項 \(\times x\)!!!
- 莫隊帶修的時候,必定要注意以前的
Old
狀態!!!
LCT
中的rotate
判斷!is_root(u)
以前必定不能鏈接u-v
的邊,否則會判錯,並且不是判!is_root(t)
!!!
- 線段樹必定要記得
push_down
和 push_up
!!!
- 線段樹中的
query
中的 res
注意看要不要開 long long
!!!
- 檢查數組有沒有越界的話必定不能開 \(O2\) 測一遍 開 \(O2\) 數組越界不會顯示 \(RE\) 會顯示 \(WA\) 開不開 \(O2\) 都試一遍!!!!
LCT
更改單點值時候 必定要記得把它放在根上 否則答案會錯!!!!
- 關於機率中 , \(1 - p[i]\) 這個機率計算時候 不要寫成 \(Mod - p[i]\) !!!
- 捆綁測試之類的題須要注意小數據狀況!!!例如 \(n=1,2,3\) !!!
- 仔細思考全部可能爆
long long
or int
的地方!!(NOI2018 同步賽又丟了 \(15pts\))要算下全部中間結果大小!!!
- 函數傳變量必定要傳完,有時候在函數定義那預處理初值不是好習慣啊!!
- 強制在線的題必定要注意 \(ans\) 是否賦值!!!
- \(calm down\) 記得算空間和檢查數組和變量越界以及多組數據!!!(次次模擬賽掛分)
- 多組數據記得清除先後綴和!!!!