dashena
计数
- 全排列计数的一个套路是设 \(f_i\) 是将前 \(i\) 个数字填入排列的方案数,后面的维度可以按照所求补充,然后考虑新加入一个数对答案产生的贡献。(P6323、P2401)
- 看到式子题考虑钦定里面的某些量,然后拆式子推出另外一些量的范围,进行计数。(P1493、P4165)
ds
- ST 可以线性重构。如果只是在末尾、开头等特定位置可以做到 \(O(\log n)\) 重构。也可以结合根分,当 \(f_{i,j}\) 里 \(2^j \le \sqrt n\),\(j\) 较小时暴力重构,\(j\) 较大时分裂下去即可。可以证明时间复杂度 \(O(n\sqrt n)\)。(P1198、P10680)
- 珂朵莉树在解决类似总和等简单问题的时候,可以直接在 assign 的时候维护。这样跑的快一些。
数学
- 看到因子分解题考虑从因子、质因子两个方面入手。一般来讲因子个数不会很大。(ABC461F)
- \(x = p_1^{a_1} \times p_2^{a_2} \cdots p_n^{a_n}\) 的因子和是 \((1+p_1+p_1^2 + \cdots p_1^{a_1})(1+p_2+p_2^2 + \cdots p_2^{a_2}) \cdots (1+p_n+p_n^{2}+\cdots p_n^{a_n})\) 其中每一项都可以用等比数列求和公式算。
- \(x\) 是 \(y\) 的一个因子(\(x \ne y\)),满足 \(x \le \lfloor \frac{y}{2} \rfloor\)。
- \(|x-y| \le x \oplus y \le x + y\)。
- gcd 的衰减是很快的。如果只关心 gcd 的值的话,对于同一个右端点只有 \(\log V\) 种。
图论
- 关心某个集合内任意两点的最短路最值可以考虑二进制分组。
posted @
2026-05-23 20:45
RainyRadio
阅读(
12)
评论()
收藏
举报