NOIP2017赛前经验总结

来源:互联网 发布:grub2命令行启动linux 编辑:程序博客网 时间:2024/06/01 18:02

一:准备

开考前还有半个小时左右的自由时间,在这段时间里可以先把库文件,读入优化,对拍打了,节省时间。

二:审题

1.考试开始时可以先把第一题做了,第二三题一定都要读,先把暴力打了(就算知道正解到时候对拍也要用),再看是否想得到正解,如果一道题半个小时都想不到正解就跳过,不要浪费时间。
2.对于每道题,一定要看清楚它的空间与时间 。看空间是怕爆空间,本来是正解就0分了,同时看是否需要用滚动数组等优化,看一个数组的空间可以用sizeof(数组名),返回的是数组所占用的字节数,除以10242就是MB数了。看时间可以帮你估计算法时间复杂度,从而判断考点。
3.看清数据范围是否要开long long,而且有时数据范围正是题目突破口,如:http://blog.csdn.net/cdsszjj/article/details/78415256。
4.图论的题要看清是连单向边还是双向边。
5.数组一般比数据范围开大一点,特别是线段树要开4n的空间,离散化的数组也要计算一下。
6.文件操作一定要试,还有文件名一定不要错了!!!!!

三:打代码

1.注意非法变量名。有些变量名在Windows下可用,在Linux下就RE了,如:y1,next,index,建议把变量名首字母大写。
2.有时候STL很方便就可以用,但一定要熟悉用法。
3.写代码时最好不要太压行,简单的地方可以压,不然最后调试时又要展开回来。
4.注意常数,NOIP不会开O2,但要是卡的紧可以手动加优化,如少用STL,加register(关键部分加就可以了,多了会RE)。

四:调试

1.调试时STL结构是无法调试的,而且会卡死程序,还是不要手贱了。
2.遇到数组类型要调试时整体看很眼花,可以直接查看如“a[1]”,”a[i]”之类的就比较清楚了,结构体同理。
3.如果有地方RE了可以把代码一部分一部分注释掉再跑,就可以很快发现了。
4.二三题打了正解一定要打对拍(一题没把握也要打),对拍时要先调小样例,如果有错了可以把当前数据存着调,同时再把数据开小一点,边调边对拍。