考前易错清单

  1. 注意测试前用题面提供的编译参数跑一遍,避免产生不必要的CE
  2. 注意实际评测时以全局内存为准,而非使用内存(要算)
  3. 为避免结论错误,无法证明/有疑问的题目一定要尝试暴力对拍
  4. 开场先将所有题面阅读一遍,并将暴力敲出,一方面方便结论证明,另一方面避免被拉开差距,在此基础上再去追求高档部分分
  5. 你觉得有点熟悉的题 $\not =$ 思路相近,如果能提供一种新的思路必然是好事,考虑在看到题目时先将所有思路全部列出来,然后再逐个去证明是否能够用于求解
  6. 你不会的题 $\Rightarrow$ 你不知道它的难度或算法 $\Rightarrow$ 无法证明是否别人都会做出来 $\Rightarrow$ 不用去思考别人会不会做,专注于自己眼下的事情
  7. 审题,注意序列/排列字眼
  8. 即使是读入,也可能要先取模
  9. 考试不到最后一刻不要放弃,也许最后半个小时也能想出更多分数
  10. 当想到可能会炸 long long 时,在代码一旁标记上,警示后面的自己记得开 long long,值得注意的是,区间的子区间数量也是有可能炸long long的
  11. 负数取模无论在什么情况下,只要不保留符号,那都是用 (a%d+d)%d

杂项

  1. 线段树合并,先合并后修改,否则两倍时间+空间常数
  2. 注意加边是加单向还是双向
  3. 树剖的时候,注意你填进去的究竟是 rk 还是 dfn
  4. 做当前弧优化时,如果有点会重复入栈,那么注意编号要取地址,否则复杂度会被卡成 $m^2$
  5. 遇到与同余相关的题目时,考虑等式的左右两边是否会有模数的倍数,从而产生影响
  6. 概率是顺推,而期望需要逆推
  7. 在2-Sat中,记得将反向关系添加上才能保证最后方案搜索的正确性