【置顶】错因总结
lnwhl
·
·
个人记录
图论区
- 倍增的时候
1<<i 打成 i<<i。
u 和 v 打错。
- 拓扑排序开始要把入度为零的点全部入队。
- 启发式合并修改操作的顺序。
- 并查集初始化。
- dinic 别忘加剪枝捏。
数据结构区
- 树状数组零下标问题出错。
- 树状数组忘记初始化。
- 单调队列第一维相同第二维不能忘记排序。
- 单调队列不仅要考虑元素的保质期,也要考虑元素的生产日期,选择合适的入队时间。
- 线段树写挂。
build(rs,l,mid);build(ls,mid+1,r)。
set 这种东西 erase(it) 之后就不能继续用 ++it,正确的写法为 it=st.erase(it)。
- 莫队要先加后减(2023.8.4)
数学区
- 在时限卡的不仅的情况下一律
define int long long。
- 负数取模问题。
define int long long 后也要把 1 改成 1ll。
double 精度回寄,要用 long double。(2023 春测 T2)
- 一些数学函数在
long double 范围内可能会寄。
- 求 x^y 的时候要是太大了就直接返回,实现可能会用到
__int128。
- 看好保留小数点后多少位(ARC 158 B)。
sqrt 精度较低(ABC 243 G)。
字符串区
.size() 返回的类型是 unsigned,直接比较可能会出错。
其他
- 多测不清空。
- 多测清空不彻底。
endl 慢的离谱,导致 TLE。
- 预处理少了。
- 变量重名。
- 没输入就调用变量。
memset(f,0,sizeof(0));/oh
i和j打错。
- 数组开小。