比赛经验总结
2016.4.27
- 数组上下标要多开几倍以防爆数组。
- 数据类型特别要注意,大多时候需要开 l o n g long long l o n g long long。
- 打对拍时,特别要注意对拍与程序共用的部分,共用的部分一旦打错,即使程序是错的也检验不出来。
- 某些数组越界在编译器内运行是不会被显示出运行时错误的。
- 审题一定要清楚,最好看多几遍题,特别要注意(模数,数据范围),样例一定要先弄懂。
- 每打完一段程序,一定要回过头来看一下刚才打过的部分有没有错误,减少错误的个数,节省调试时间。
- 注意空间复杂度和时间复杂度,空间的大小不要接近其极限,控制在极限空间的 2 3 2\over3 32以内。
- 每想到一种可能是正解的算法,不要急于下手,先检验样例,确保其算法的正确性,不要等到程序都打完了才发现这是错的,浪费了时间。
2016.8.18
- 时间分配一定要合理,注意如果一道题花了较多时间,应及时放下,先做暴力,保证拿到保底分。
- 打水法时应打分段程序。
- 一定要对拍,如果不会打对拍,记得多看几遍程序。
- 考虑题目的特殊情况,不要因为考虑少了而丢了不该丢的分。
2016.10.10
- 如果程序出现了问题,调试时请一定要分模块调试,不要从头跟到尾看到底。
- 当比赛还剩下 10 10 10分钟的时候,即使没有打完也应该停下来,检查是否注释掉了该注释掉的东西,文件名是否写对,文件夹是否建对。
2017.10.27
- 结束前切记检查文件名,特别要检查有没有多余的空格。
2017.10.28
- 使用读入优化和输出优化时一定要注意负数。
2017.11.6
- 比赛时应定要测是否会爆空间。
- 有多组数据的时候应在草稿纸上列出要清空的变量和数组,要特意检测多组数据分开跑和一起跑是否会不同,避免出错。
- 线段树一定要开4倍空间!
- i n t int int乘 i n t int int可能会爆 i n t int int,要在第一个 i n t int int的前面加上( l o n g long long l o n g long long)。
2017.11.9
- 注意手贱,
d
e
f
i
n
e
define
define里不要打错,切记不能打成
#define fd(i,j,l) for(int i=j;i<=l;i++)
,会出人命。 P s Ps Ps:这么脑残的错误我竟让没看出来,结果分数少了个0。打完程序后记得检查 d e f i n e define define。
2019.4.10
- 打MTT时,记得用另两个数组存dft后的结果。
- 单位根反演乘上单位根的是转移矩阵。