下面的自己差不多都犯过,希望引以为戒。

.及时取模,取模负数记得转成正数,注意乘法的过程中可能会爆long long,十年OI一场空,不开longlong见祖宗,一顿操作猛如虎,不开longlong250.

.写了预处理的函数一定要调用。

.函数一定要加上函数名,不要只加括号。

.高精度要注意答案为0的情况。

.if();/for();直接加分号

.ios::sync_with_stdio(false);后还用scanf();

.不要乱用memset,尤其是给double类型的赋初值。重点是还不容易检查出来。

.最后5、6分钟的时候千万不要再改代码,因为大脑是不清楚的,尝试编译一下,不要CE。

.不要把 ans定义为char类型的...

.不要重复使用同一个变量,不要将很多变量用一个名字。

.线段树一定要update

.一定要来一组大数据,试一试会不会RE、TLE.

.1<<N和N<<1区分开

.注意数据范围里可能有0

.注意位运算的优先级

.看清保留几位小数

.论k和K的区别

.图论注意可能存在自环和重边

.算好空间!

.分清continue和break

.线段树down的时候一定要检查每个东西是否都down了。(比如不要忘记下传lazy标记).

. 对拍的时候一定要写srand(time(0))...要不然拍的都是一样的数据

.一定要读清题!多读几遍!

.freopen()

.不写return 0;成绩return 0;

.快读不要写错

.srand & ctime

.从字符串里读数的时候注意会乘爆.

.多测不清空,爆零两行泪。多输不换行,直播凉凉凉。

.主席树的节点回收问题

.主席树Insert函数不要加特判,直接开点。

.多组数据的题你判了无解也要把数据读完。

.除法(尤其是斜率优化DP)注意不能除0.

.期望的平方不等于平方的期望。例子

.multiset的erase是删去所有值为x的元素,删一个的正确姿势:

multiset <int> ::iterator it=s.find(x);s.erase(it); </int>

.题面一定要从头看到尾.题面一定要从头看到尾.题面一定要从头看到尾.

.vector为空的时候不能二分,会RE

.双指针俩个指针要分清

.DAG的遍历:一点要打上vis标记,否则虽然点不多,但路径数是指数级别的。

.双指针处理串的时候看看需不需要再复制一个串接在后面(主要用在断环成串的情况)

.质因子分解时注意有存在大于根号n的质因子的情况

.除以一个数的时候注意那个数是不是0

欢迎大家分享注意事项