错误点

目录

  1. 算法相关
  2. \(\text{stl}\) 相关
    (随时补充)
  3. 杂项
  4. 数学

1. 算法相关

1. 并查集

  1. 种类并查集处理关系时一定要考虑全面(比如天敌关系不成立有是同类和捕食两种情况)。
  2. 合并时要用根节点。
  3. 种类并查集空间开几倍。
  4. 带权并查集 px (father)不要和 x 写串。
  5. 合并一定要是两个 find 后的合并。

2. 二分

  1. check 想好返回值是什么。(什么时候是成立)

3.DP

  1. 更新时注意能否使用一个元素更新当前元素,某些值看似可以用来更新,但实际上是有矛盾点在的,比如 P1399 [NOI2013] 快餐店 中,不可直接使用 a[i] 更新 b[i]

4. 高精度

  1. 注意写法
  2. 位压写法输出时注意 %04lld

5. 缩点

  1. 记得将原本的编号变成缩点后的编号(点)。

6. LCA

  1. 倍增 lca 要遍历到零,for(int i = 17;i >= 0;i -- ),如果写成 i >= 1 会死得很惨。

7. 线段树

  1. tag 记得和 t 开一样空间。
  2. tag 尽量赋成 -1,以防 tag[k] = 0,但是需要操作的情况。

8.树剖

  1. dfn 的记录要在 dfs2 中进行。

2. \(\text{stl}\) 相关

  1. next_permutation 要先 sort。
  2. mapunordered_map 判断元素有无用 count,如果直接 map[x] 会涉及 map 内元素是否为 0 的问题。

3. 杂项

  1. 部分开 long long时,如果有 long longint 的运算要记得将 int 转化为 long long。 (1ll *
  2. 不要写 int 类型的函数不返回值,会 TLE
  3. 在循环内进行统计时, 应考虑有无在中间 continuebreak 的情况。
  4. double 不要 memset,也不要 f[i]=-0x3f3f3f3f
  5. 一定要写 cin 优化。
  6. 记得看数据范围开 long long!!!!!
  7. 记得 cin 优化。
  8. 当键值对中键较大时,map 复杂度优于 unordered_map。
  9. int * int * long long 前两个可能炸 long long。

4. 数学

1. 排列组合

  1. 要处理 0 的阶乘和逆元(重点)。
  2. 数据量较大时,阶乘处理组合数可能会比较慢。如果可以,使用递推求组合数。
posted @ 2025-09-16 19:47  yanbinmu  阅读(2)  评论(0)    收藏  举报