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