我的 sb 错误 & 做题 tricks

让大家见识一下我的 sb 程度(

  1. 如果数据范围是 \([-2^{31},2^{31})\),那么就要用 long long 版本快读!!!1
  2. 好好想一想建图 / 预处理等操作依赖的参数是否足够大 / 正确!
  3. 对 corner case 的处理(CF1789F, \(k = 1\))。
  4. \(\mathbf{998244353}\) 打成了 \(\mathbf{998244253}\)
  5. 心态绝对不能炸!(CSP-S 2023, ABC 326)
  6. 绝对不能用 x0, x1, y0, y1 之类的!
  7. 能不用 vector 就不用 vector!!
  8. 不要写错文件名!不要复制上一个代码!
  9. std :: vector 不要重复用 size 函数!!!

让大家见识一下做题的 tricks)

  1. 构造题,调整题目中给出的限制 / 条件,尝试满足一些特殊的情况,然后调整构造方案。
  2. 构造题,增量构造,每次加入一些元素,将其放在合适的位置以满足条件。关键就在于找到策略使得即能插入又能满足条件,有时需要合适的顺序才可以
  3. 概率期望题,若出现 \(\mathbf{10^{100}}\) 很大的数直接按无穷大处理,答案一定是收敛的,然后直接做 DP / 解方程等操作。
  4. ?? 题,用暴力或特殊性质的算法 进行 数据分治,需要找到多种暴力拼起来以解决题目中所有的情况。
  5. 有若干二元组的限制 \((u, v)\)可以考虑建图:对于每一个限制 \(\symbfit{(u, v)}\) 都建一条 \(\symbfit{u \to v}\) 或者 \(\symbfit{v \to u}\) 的边。然后按连通块的形态(基环树?外向树?内向树?树?...)处理。
  6. 当想到一种 DP 的时候,并且需要优化,可以考虑使用 线段树 / 树状数组 等 DS 优化!
  7. 当数据范围在 \(30 \sim 40\) 之间的时候(即数据范围除以 \(2\) 可以暴力枚举),可以考虑使用 Meet In The Middle
  8. 做题的时候可以把烦人的地方拎出来,通过 改变状态 / 顺序 等方式把烦人的地方消除,就变得很简单了。
  9. \(\displaystyle f(x) = \prod_{i = 1}^{c}p_i \left(x = \prod_{i = 1}^{c}p_i^{\alpha_i}\right)\),其中 \(p\) 是质数且 两两不同,则 \(\gcd(x, y) \neq 1\) 当且仅当 \(\gcd(f(x), f(y)) \neq 1\)
  10. 优化建图的技巧:可以考虑前后缀建图的技巧,直接上图:
    image
  11. 构造操作的题,可以尝试先满足一些条件,然后 check 别的条件是否满足,CF1157G。
  12. 构造题判断无解如果涉及到 步数类似的量,可以考虑计算其上下界以判断!
  13. 换根的一些东西:初始树的根为 \(1\),假设我们已经把这种情况下的信息都预处理好了。若树根换为 \(rt\),那么 \(u, v\) 的 LCA 为 \(\text{LCA}(u, v), \text{LCA}(u, rt), \text{LCA}(v, rt)\) 中深度最大的点。那么 \(u\) 的子树变为:若 \(\text{LCA}(u, rt) \neq u\),那么 \(u\) 的子树未发生变化。否则设 \(v\)\(u \to v\) 路径上的第 \(2\) 个点(或者 \(rt\) 的第 \(dis(u, rt) - 1\) 级祖先),\(u\) 的子树变化为整棵树减去以 \(v\) 为根的子树。
  14. \(\forall a, b, c \in \mathbb{Z}, \displaystyle \left\lfloor\dfrac{\left\lfloor\frac{a}{b}\right\rfloor}{c}\right\rfloor = \left\lfloor\dfrac{a}{bc}\right\rfloor\)
  15. 树上有 \(a_1, a_2, \dots, a_k\) 总共 \(k\) 个点,并且按 dfs 序排序,那么把这 \(k\) 个点连通所需要的最小边数为 \(\dfrac{dis(a_1, a_2) + dis(a_2, a_3) + \dots + dis(a_{k - 1}, a_k) + dis(a_k, a_1)}{2}\),其中 \(dis(u, v)\) 为从 \(u\)\(v\) 的路径所经过的边数。
  16. 考虑操作之间的关系 / 顺序 / 是否可被代替。
  17. 质数的密度是 \(\log\) 级别的。
  18. 一个每个点度数 \(\leq 2\) 的无向图的所有连通块的形态仅有 简单环(即 \(\symbfit{1 \to 2 \to 3 \to 4 \to 1}\)
  19. 最大和最小之间有什么关系?不一样?一样?可替代?计数?
  20. 推式子的时候可以想一想交换枚举顺序?枚举某个本质相同的量?可不可以用二项式定理?
  21. 范德蒙德卷积,\(\displaystyle \symbfit{\sum_{i = 0}^{k}\binom{n}{i}\binom{m}{k - i} = \binom{n + m}{k}}\)
  22. 在一个长度为 \(n\) 的环上以 \(k\) 为单位跳 \(\geq n\) 次,设初始点为 \(s\),那么最后经过的点为 \(u \bmod \gcd(n, k) = s \bmod \gcd(n, k)\) 的所有 \(u\)
  23. 斯特林拆幂:\(\displaystyle n^m = \sum_{k = 0}^{m}{m \brace k}\dbinom{n}{k}k!\)
  24. 斯特林数预处理:
v[0][0] = 1;
for (int i = 1;i <= 2020; ++ i) {
  v[i][0] = 0;
  for (int j = 1;j <= i; ++ j) {
    v[i][j] = (v[i - 1][j - 1] + (1ll * j) * v[i - 1][j] % mod) % mod;
  }
}
  1. 考虑答案的上下界!
  2. 做题的时候考虑考虑根号分治!
  3. 撤销 + 撤销 = 恢复!
  4. 考虑把所有的变量表示成统一的形式。
  5. \(\gcd(a, b) \leq \left\lfloor\dfrac{a}{2}\right\rfloor(b < a)\)
  6. 考虑每一位 / 每一个质因子 / 每一个 ... 的独立性。
  7. 多考虑考虑 DP 等其他做法!
  8. 单位网络的最大流就是增广路的条数。
posted @ 2023-10-27 22:15  CountingGroup  阅读(10)  评论(0)    收藏  举报