[置顶] [错误集锦&套路汇总]

Mistake

极限值赋值错误:比程序中可能出现的最大值要小
++xx++ 傻傻分不清
排完序的编号数组各种嵌套错误,张冠李戴~
爆类型的检查不要只看统计答案的变量,中间变量炸了是很伤的。
傻逼的变量名打反。
普通的线段树要开四倍空间!!!
单调队列为空时的查询要特判。
浮点数的比较一定要特判!!!不能直接用符号!!!
宽搜的条件head<tail切记不要打成head<=tail了!!!
线段树的空间不要估错了,不要什么时候是什么时候是 O(nlogn) 什么时候是 O(n) 傻傻分不清。
能用整数就不用浮点,慢死了。

Trick

求准确满足某个条件的方案数,使用容斥转化为至少满足某个条件的方案数,简化计算。
二进制互相之间的包含关系,使用分治算法优化计算过程。
类似启发式合并的思路,每次选择小的部分暴力有奇效!
适当的时候想想差分。
树上 dp 不要被树的形态所束缚,多想想各种遍历序,不要忘了除了欧拉序 DFN 序还要返璞归真看看基础的先序/中序/后序遍历序!!!
无根树上联通块问题考虑枚举根节点然后强制选择到根路径。
一些看起来无从下手的计数类问题可以考虑一些特殊情况或条件作为突破口。
图论相关计数类问题,考虑利用连通性容斥:例如对森林枚举 1 号点所在的树,对图枚举连通分量等等。

Inspect

审题时应该重点注意些什么

取不取模,模数是多少。
数据范围,以及其可能带来的影响(类型要开多大,INF要开多大)。
时空限制!!!

检查程序时要重点检查什么

头文件打齐没有,尤其是<algorithm>(sort) <cstring>(memset) <climits>(INT_MAX) <cfloat>(DBL_MAX)
变量名有没有打反!
数组空间有没有爆。
类型有没有爆,尤其是中间变量的溢出更加隐蔽。
极限值INF开对没有。
有没有特殊的Trick,手工出一些强一点的小数据。
边界开对没有。
注意,有些很危险的变量名不要随便用,避免引发潜在的冲突!
next time x0(cmath) y0(cmath)
既然比赛地点不提供评测环境,那我们取变量名还是尽量不要太English吧~尽量简写,以免鬼畜。
所有出现了浮点数比较的地方是否都使用了自己写的比较函数!
abs函数貌似只兹瓷int类型。
对拍的bat不要错了!要记得比较文件。造数据要记得srand!
对拍的数据范围尽量符合题目要求,给了的就按照给了的来,没有给的不要自作主张随便给一个范围。

你可能感兴趣的:(总结,OI)