10.30,距NOIP还有11天。简单总结一下机房诸位dalao已经发现的鬼bug和一些注意事项。
考试事项
- 在上机但还未发题的这段时间里可以调一调Dev,随便写个程序看看基本功能有没有出锅,然后把头文件和freopen打上,检查一下确保没有打错,这样再发下题之后就可以直接用了。
- 发下题之后一定要好好读题!一定要好好读题!一定要好好读题!注意看一下时间和空间限制,看一下数据范围,看一下当无解时是输出-1,“no”大不大写或是
N0之类,当然题意更不能理解错,尽可能地对着样例手推一遍,确保理解无误。还有很重要一点就是变量的输入顺序以及是否为多组数据 - 时间充足的话就先不要急着打键盘,先在纸上列一列,自己手出几组数据推一下,当然如果时间不太够或是程序很短的话可以先打上再调
- 学会放弃,有的时候重构一遍真的比瞎打补丁或是盲目调试要快得多,也靠谱得多,当然最重要的还是想好了再写。
- 先把三道题都过一遍,先写先确定的或是最有把握的。具体顺序大概: 要思路但是好实现的(当然要先保证自己思路是对的)、简单但是细节较多的、确定算法但是实现可能会很麻烦的、各种暴力和骗分
- 当写着别的题时如果想到了可能会卡掉已写完的题的数据的话,如果现在在写的题快写完了或是特别有把握,就先记下数据去完成当前题,再用数据去调上一道;如果现在在写的题只是一个分值不高的暴力之类的,就先去调之前的题。
- 写对拍
- 提交之前一定要全检查一遍:文件输入输出,调试信息是否全部删除;最好用样例数据重新编译并执行一遍
- 在一些时间点备份,以防止删掉了某些自己都没有注意到的东西。
- 要在linux下试一遍,防止某些不兼容
一些需要注意的锅
- 变量名不要起得太正经(防止与linux保留字冲突)
- double数组不要用memset
- linux与windows的换行符不同,一些情况需要注意
char c[19][10000]
是开了10000个长度为19的字符串,而不是相反- 位运算优先级
- ==与=
- 极大值0x7FFFFFFF 极小值0x8000001 这两个值十分极端,在int下加一\减一就会爆
- 考试不要瞎用读优
- 数组开太小
- 相似变量名打错
- 没有初始化
- 括号是否套错
- 爆int
- 爆精度
- 自环、重边、有向无环
- 有些题目的收尾操作
大概就这么多?
NOIP RP++!