總結各類錯誤(always online)
阿新 • • 發佈:2018-12-30
- 一定要好好看資料範圍,接近
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
orint
的地方!!(NOI2018 同步賽又丟了 \(15pts\))要算下所有中間結果大小!!! - 函式傳變數一定要傳完,有時候在函式定義那預處理初值不是好習慣啊!!
- 強制線上的題一定要注意 \(ans\) 是否賦值!!!
- \(calm down\) 記得算空間和檢查陣列和變數越界以及多組資料!!!(次次模擬賽掛分)
- 多組資料記得清除前後綴和!!!!