知识点复习

  • 线性筛(DONE)
  • 格雷码(SKIP)
  • 平衡树(DONE)
  • 连通性(DONE)
  • 欧拉回路(DONE)
  • 扩欧(DONE)
  • CRT(DONE)
  • 多重集排列/组合(SKIP)
  • 错排列,圆排列(SKIP)
  • 卡特兰(SKIP)
  • 高斯消元(SKIP)

死记硬背

$$
K(n) = \sum_{i=0}^{n-1} K(i) \cdot K(n-1-i)
$$

$$
D(n) = (n-1) \cdot (D(n-1) + D(n-2))
$$

$$
C(n) = (n-1)!
$$

重要考点

  • 图论
  • DP
  • 线段树
  • 哈希

注意事项

  • 图论注意连通性(可能不连通但是你只处理了一个)。
  • 不要急着调试,浏览一遍代码通常就能快速发现问题。

有用指令

  • ulimit -v "${memory}",不要同一窗口多次使用。
  • ulimit -s "${stack_size},不要设置成 unlimited
  • g++ -fsanitize=addressg++ -fsanitize=undefined。注意其可能造成的行为不一致,因此应该使用不含其的命令测试一遍。以及效率损失问题。
  • -g

考试策略

  • 读所有题
  • 每一题思考不少于 $20$ 分钟
  • 对于较长的代码,先整理思路并检查正确性。
  • 不应该在有事情做的时候编写难以实现的代码。
  • 不要写几乎不可能实现的代码。
  • 不要再一题上消耗大量的时间。
  • 比赛结束前在 Linux 下检查,尽量不要修改代码。
  • 比赛结束前备份代码并测试样例。
  • 检查空间与时间限制。
  • 不要编写没有把握的代码。
  • 如果消耗的时间超出预期,重新评估价值。
  • 不要紧张,提前暖机暖手。

要说的话

NOIP 并没有想象中的那么难,限制我们的往往是我们自己,应该奔着正解去想,不要害怕,人生本来就是未知的,我们需要相信自己。