写代码中需要注意的事项!(持续更新)

1. 数组不越界、下标不能取负数(特别注意取%时进行加减运算时可能产生的数组越界问题)

2.n<=2*10^9都可以放心使用int的

3.dp时间复杂度在无优化的情况下通常为O(n^2),因此应根据情况合理使用搜索

4.数组开到10^9会爆掉。因此可以使用map进行代替。没有赋值(?)的map初始值为0

5.(尤其是图论题)带空格的输入一定用get,且第一行若输入数字需要吃回车

6.一定考虑极端取值(0,1)是否对应着特殊的解法(e.g.当取某些值时你的求解循环没有循环?for (int i=0;i<n;i++) 若n=0则可能出现未输出答案等问题)

7.数据范围较大时一定记得使用long long. 且输出结果为long long时用printf一定要注意("%lld")

8.数字超出数据范围会变成负数表示。因此如果想判断所取值是否过大(超出ing/long long范围)(乘法尤为多见)时不仅要保证此数小于该数据类型能取到的的最大值,还有注意不能使负数(根据实际情况)

9.开数组时不要写少了0啊。。。养成写const int的好习惯。用科学计数法。要不然re真的很亏啊

10.scanf效率远大于cin.因此尽量使用scanf(尤其是输入的数据量>=1e+6)不然输入超时就十分可惜了。

11.一定注意检查输出格式。什么每行输出**个,从小到大,字典序,换行符之类的错了非常非常非常可惜啊。。。特别是那种样例给的比较恶心正好能过的。

12.写hash函数是最好写成Hash

13.想清楚再开始写很重要!不然真的很浪费时间orz。最好状态时思考良久后一气呵成,正确率也会较高

猜你喜欢

转载自blog.csdn.net/qq_42158832/article/details/80232192