tips and tricks
错误日志
2018.08.25 数论题多想想 \(0\)。
2018.08.04 浮点数计算时若只需要比较是否相等,可以在模意义下计算以避免精度损失。碰巧相等的概率非常低。
2018.07.30 访问多项式的系数时一定要注意是否越界。
2018.07.02 对于单个输入尝试打表画图。
2018.06.26 islower()
和 isupper()
等函数的返回值是 int
,且不一定为 1
,使用的时候要小心。
2018.06.17 每道题交之前先想想 \(0\) 和 \(1\) 之类的特殊值会不会出错。
2018.05.19 1.浮点数的乘除法非常慢,请尽量避免。 2.inf
和 nan
的运算速度非常非常慢(大约为正常浮点数的 \(10\) 倍),可能直接导致 TLE
,请务必确保不要出现 inf
和 nan
。
2018.05.06 1.java 写多了别忘了 c++ 是值传递,引用传递要加 &
。(辣鸡 OO)2.当容器为空时,对 begin()
和 end()
进行 ++
和 --
操作均为未定义行为,可能导致运行时错误。
2017.12.08 输出方案、交互等,用 assert 检验输出的合法性。
2017.11.15 如果测试数据有 \(10^9\) 组,不要使用 memset
2017.10.06 1.相对误差要求很高的时候用 %lg 或 %e 输出。2.图论的样例,多画一画同构的图。3.倍增的时候第二维注意开大一个
2017.09.23 cin.eof() 和 scanf() 判断 EOF 的位置不一样,记得多组数据测试样例时一定要 Ctrl + Z 试一试
2017.08.22 注意不要对 \(0\) 取 log
,可能会导致错误
2017.08.09 对 long long
需使用 __builtin_popcountll
2017.08.04 Kosaraju 算法一定要先反图求一次逆后序遍历,再在这个基础上对原图 dfs
2017.08.02 题目中的 example 都要去测试
常犯错误
long long 写 int
整数除法是向零取整,注意处理负数的情况