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.infnan 的运算速度非常非常慢(大约为正常浮点数的 \(10\) 倍),可能直接导致 TLE,请务必确保不要出现 infnan

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

整数除法是向零取整,注意处理负数的情况