代码注意事项

Update:2021.10.17

一、无模数时不开long long见祖宗!!!有模数时不能开long long,很大概率会超限。

二、当数据大时尽量别出现两个大数相乘的情况,否则用快速乘

三、注意运算的先后顺序

1.不确定优先级就死命加括号!!!

2.判断偶数时if(x%2==0)不能改成if(!x%2),因为这样它会先算!x,再算(!x)%2,所以会得到错误答案,这里可以改成if(!(x%2))这东西搞得我一道题交了21遍才过。

四、数组下标不能出现负数或大于数组范围的数

五、数组不能开得过大,可能会MLE

六、模运算没有关于位运算的性质,所以计算时不能边异或边取模

七、计算时能模就模(除了上面这种情况),对于不用进行模运算的,尽量避免大数相乘

八、避免变量名相同而引发的错误

九、注意sort快排不稳定,要确保按输入顺序输出时应手打排序

十、maxmin最好不要用define(因为可能会造成奇奇怪怪的错误),最好手打函数

十一、for循环的边界条件如果需要调用函数(如:strlen()),那么最好先算出来,否则复杂度会增加,有的题会卡掉。

十二、求pow(pow(x,a),b)时,最好不要化成pow(x,a*b),虽然这是等效的,但是会莫名其妙地错误(a*b未溢出)!

十三、不要用数组充当变量(如用dfn[0]来记dfs序),这样会造成玄学的错误!我因此交了这题89次才发现错误所在,同时因此多花了两三个小时!

十四、最重要的东西

freopen(“problem.in”,“r”,stdin),考场上打错就凉凉

你可能感兴趣的:(随笔,随笔)