NOIP 注意事项梳理

· · 个人记录

赛前

赛中

  1. 读题(20 min 左右,不超过 30 min)
    • 通读所有题目!简单判断题目难度,决定开题顺序(尽量正序,视情况交换 t1/t2,t2/t3)
    • 仔细看题目描述!包括但不限于 整数、是否保证图联通、特殊数据范围...
    • 手玩小样例看自己有没有读对题
  2. 想题(连续不应超过 20-30 min)
    • 正常读题的时候就应该会签到了,要再仔细想一下实现,简单记录流程
    • 模拟之类实在想不清细节可以先搭框架,边写边想,别干坐着浪费时间(信友队 t1)
    • 一下想不到正解的话,不要慌张,踏实从部分分开始想
    • 转化操作,变成一些“等价”问题,寻找性质
    • NOIP 无非就是 dp、板子、式子/性质题,可以从这些方面入手思考
    • 不要一个题卡太久,没思路的时候先写暴力
  3. 写题
    • 注意结构,别写成乱七八糟的一坨
    • 适当写点注释提醒自己,别写着写着就忘记在干什么了
    • 注意细节 & 判断条件,写之前要想一下并且记录下来
  4. 调题
    • 写完先通读一遍代码,此时应该可以发现一些逻辑上的错误
    • 分块调试,即使很简单的函数也要检查一下,避免出现打错等问题
    • 输出中间变量,手模样例,暴力对拍
    • 仍然是不要慌张,冷静下来仔细想想,相信自己肯定能调出来
    • 即使过了样例,也要再检查两遍!
    • 测试一下极限数据,会不会 RE/TLE
  5. 优化
    • 签到打完,暴力写完,考虑优化
    • 复杂度瓶颈在哪里?能否优化?
    • 傻瓜 dp 式子?能少几维状态吗?
    • 一定不优的无用状态?
    • 什么信息是核心的、重要的,能否压缩状态?
    • 好像无处优化了,再猜猜结论、推推性质?换个角度思考?
  6. 检查(结束前 10 min)
    • 除非有信心一定能调出来,否则不要再写新东西(即使如此,5 min 是底线)
    • 检查提交系统内的代码是否是最新修改的版本
    • 文件名?
    • long long 和取模?
    • 数组有没有开够?
    • 调试信息是否删除?
    • 数据点分治有没有 exit(0)?namespace 有没有写混?
  7. 其他注意事项
    • 不要随便删代码,随时保存、备份
    • 如果 codeblocks 之类的卡死,果断换记事本写代码(打算试一下 Geany,可能卡死概率小点)
    • 遇到更严重的突发情况不要慌,及时找监考老师
    • 必要的时候上个厕所冷静一下

赛后

考场上最重要的是相信自己,相信自己能想出来,能写出来,能调出来

做的顺别放松,做的不顺也不要慌,尽力而为就好

NOIP 2024 rp++