那些年犯下的SB錯誤
阿新 • • 發佈:2021-08-22
那些年犯過的SB錯誤
1:多組資料忘記清空陣列
2:清空時memset TLE
只要用 \(sizeof(int) * (n + 1)\) ,
用多少清多少就好啦.
3:求最值忘記初始化
最大值要初始化到 \(-inf\) ,(避免負數
最小值要初始化的 \(inf\) .
4:位運算不會強轉
\(1 << 40ll\) 仍然是int,
不會轉成ll,
要用 \(1ll << 40\) .
5:寫錯模數
不要看到 \(1e9 + x\) 就寫 \(1e9 + 7\) ,
萬一是 \(1e9 + 9\) 呢?
6:寫錯下標
例如第 \(i\) 個操作要修改的下標是 \(num[i]\)
不要把下標寫成 \(i\) ,
要寫 \(num[i]\) .
7:新建指標時千萬不能連等
如
ls = new node, rs = new node;
不能寫成
ls = rs = new node;
否則會給 \(ls\) 和 \(rs\) 賦成相同的地址.
8:忘記初始化下標
在多次更新答案的時候,
如果答案需要輸出方案,
且每次都是下標從 \(0\) 開始的方案,
記得把下標變數重置為 \(0\) .
9:計數時漏掉最後的一段
如果是在出現非法情況時統計合法數量,
則需要在迴圈外特判一下最後的一段,
防止最後出現連續的一段合法.
10:忘記取模
有時候要預處理階乘之類的東西,
這個也是要取模的.