常见错误合集
不定期更新 咕咕咕qwq
-
链式前向星循环条件中要写nxt 而不是to
-
树状数组中要写\(i+=lowbit(i)\) 而不是\(i+=lowbit(x)\)
-
树中查找要写\(l,mid\)而不是\(1,mid\)
-
** 二分答案的时候\(else\)不能忘(?什么sb错误) 且上下界一定要照好**
-
树中区间查询必须是\(x\le mid\)和\(mid+1\le y\)而不是\(mid+1\le r\)
-
宏定义打括号要多打
-
时刻取模
-
递归查找的时候主函数名和递归下去的函数是一样的 不能前面max后面sum
-
线段树中需要看好 返回条件是这个区间被目标区间完全覆盖 \(x \le l \le r \le y\) 而不是这个目标区间完全覆盖了这个区间
-
tarjan缩点当中需要注意dp的初始值
-
最短路中定义队头和对尾需要在插入数据之后
-
dij中需要小根堆 那么\(greater<pii>\)必不可少 同样还有\(vector<pii>\)
-
最短路从源点\(s\)开始 而不是从任意一个点开始
-
memset需要慎用
-
建树!!!!!!!!!!!!!!!
-
dijkstra不能用pair!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
线段树查询的时候需要特判区间中\(x>y\)的情况
-
7.6upd:强烈建议去做cf1771f 排雷好题
- mid的写法为(l+(r-l)/2) 而不是((l+r)>>1) 一用就炸(upd:(l+r>>1)貌似也行?)
- 异或和不等号连用 异或必须打括号
- 一坤时得出两个教训 警钟撅烂
-
\(1h\)的教训:\(vector\)离散化需要\(erase\)后面的元素或者\(resize\)大小为\(sz\) 因为去重后\(vector\)不会自动缩减大小
-
字典树清空的时候不要忘记 \(0\) 节点 不能直接用 \(memset\) 清空