下面的自己差不多都犯过,希望引以为戒。
.及时取模,取模负数记得转成正数,注意乘法的过程中可能会爆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
欢迎大家分享注意事项