noip前注意事项总结

10.30,距NOIP还有11天。简单总结一下机房诸位dalao已经发现的鬼bug和一些注意事项。

考试事项

  1. 在上机但还未发题的这段时间里可以调一调Dev,随便写个程序看看基本功能有没有出锅,然后把头文件和freopen打上,检查一下确保没有打错,这样再发下题之后就可以直接用了。
  2. 发下题之后一定要好好读题!一定要好好读题!一定要好好读题!注意看一下时间和空间限制,看一下数据范围,看一下当无解时是输出-1,“no”大不大写或是N0之类,当然题意更不能理解错,尽可能地对着样例手推一遍,确保理解无误。还有很重要一点就是变量的输入顺序以及是否为多组数据
  3. 时间充足的话就先不要急着打键盘,先在纸上列一列,自己手出几组数据推一下,当然如果时间不太够或是程序很短的话可以先打上再调
  4. 学会放弃,有的时候重构一遍真的比瞎打补丁或是盲目调试要快得多,也靠谱得多,当然最重要的还是想好了再写。
  5. 先把三道题都过一遍,先写先确定的或是最有把握的。具体顺序大概: 要思路但是好实现的(当然要先保证自己思路是对的)、简单但是细节较多的、确定算法但是实现可能会很麻烦的、各种暴力和骗分
  6. 当写着别的题时如果想到了可能会卡掉已写完的题的数据的话,如果现在在写的题快写完了或是特别有把握,就先记下数据去完成当前题,再用数据去调上一道;如果现在在写的题只是一个分值不高的暴力之类的,就先去调之前的题。
  7. 写对拍
  8. 提交之前一定要全检查一遍:文件输入输出,调试信息是否全部删除;最好用样例数据重新编译并执行一遍
  9. 在一些时间点备份,以防止删掉了某些自己都没有注意到的东西。
  10. 要在linux下试一遍,防止某些不兼容

一些需要注意的锅

  1. 变量名不要起得太正经(防止与linux保留字冲突)
  2. double数组不要用memset
  3. linux与windows的换行符不同,一些情况需要注意
  4. char c[19][10000] 是开了10000个长度为19的字符串,而不是相反
  5. 位运算优先级
  6. ==与=
  7. 极大值0x7FFFFFFF 极小值0x8000001 这两个值十分极端,在int下加一\减一就会爆
  8. 考试不要瞎用读优
  9. 数组开太小
  10. 相似变量名打错
  11. 没有初始化
  12. 括号是否套错
  13. 爆int
  14. 爆精度
  15. 自环、重边、有向无环
  16. 有些题目的收尾操作

大概就这么多?

NOIP RP++!