OI 检查指南

赛前

要带:

  1. 身份证
  2. 准考证

要检查:

  1. 鼠标
  2. 键盘
  3. 显示器
  4. 操作系统

要早点来,上厕所、调整状态、排斥杂念、保持平常心。

赛时

  1. -std=c++14 -O2 -Wall -Wextra -Wpedantic 编译命令要带上
  2. 关于调试代码
    1. 如果调试代码和提交代码不一样,就在 #ifdef ONLINE_JUDGE#else 中包裹提交代码,#else#endif 中包裹调试代码。
    2. 如果只有调试代码,就在 #ifndef ONLINE_JUDGE#endif 中包裹调试代码。
    3. 如果只有提交代码,就在 #ifdef ONLINE_JUDGE#endif 中包裹提交代码。
  3. 十年 OI 一场空,不开 long long 见祖宗
  4. 十年 OI 一场空,不写 freopen 见祖宗
  5. 十年 OI 一场空,freopen 写错见祖宗
  6. 十年 OI 一场空,ans 不初始化见祖宗
  7. 多测不清空,亲人两行泪
  8. 加法、或、异或幺元为 0,乘法幺元为 1,矩阵乘法幺元为 i == j 对角线(主对角线)为 1,其他位置为 0 的矩阵,与幺元为 [TYPE]_MAX 或 numeric_limits<[type]>::max(),不能混淆。
  9. 数学/结论题用纸笔演算,防止出错。
  10. 注意测边角料数据。
  11. 注意看数据范围,不仅是为了确定数据类型开数组、想符合复杂度的算法,更是为了获得启发(如 2ⁿ (n ∉ {7, 8, 15, 16, 31, 32, 63, 64}) - 1 -> bitset 或拆位)
  12. 浮点数一定要开 long double,不能用等号而得用 ϵ(epsilon) 测试。
  13. 不要忘记取模!不要忘记加模取模!随手取模好习惯,漏取祖宗爬出坟。可能会带来常数上的影响,用快读可优化。如果是纯加法,可以用 if ((var += num) >= mod) var -= mod 加速,前提是 varnum 都大于等于 0 且小于 mod
  14. 快读写错,就 AFO。
  15. 如果模数为 2ⁿ - 1 (n ∈ {8, 16, 32, 64}),则大概是自然溢出,不需要显式取模。如果模数为 998244353,那么大概是数论题,有一定概率是 NTT。

赛后

放轻松就好了。

links

social