Tricks
Tricks
-
二维平面的问题,要善用三角函数。
-
树上路径计数,可以枚举路径的中点。
-
有限制上下界的问题,可以差分。例如求最小距离在 \([L,R]\) 中的方案数,可以差分成最小距离 \(\ge L\) 的方案数前去最小距离 \(\ge R + 1\) 的方案数。
-
DAG 计数,状压,枚举度数为 \(0\) 的点,容斥。CF1466H。
-
支配对问题。一些树上问题,如果两种点对一个一定比一个更劣,那么一定不选择劣的那一个。一些题能通过证明得到有用点对只有 \(O(n \log n)\) 种,可以 DSU on Tree 或者点分治等做法维护这些点对。
-
对于模数为 \(U^V\),\(U,V\) 范围都很小。比如求的式子为 \(\prod (a_i+x)\),拆成 \(\prod ((a_i+b)+xU)\)。看成关于 \(xU\) 的多项式。且多项式次数不超过 \(V\)。可以维护多项式。P10175,NFLS NOIP16 C。
-
置换不满足交换律。类似矩阵。可以快速幂。
-
设前缀和为 \(sum_i\),每个点为 \((i,sum_i)\),斜率为平均数。
-
期望的线性性。ARC114E。
-
正难则反。ARC112E。
-
记得想 Hash。可以线段树维护 Hash 值(NFLS NOIP20 B)。对集合 Hash(NOI2024 D1T1)。
-
多个公平组合游戏的 SG 函数值为每个公平组合游戏的 SG 函数值的异或和。比如给定一棵树,树上有一些点有一些棋子,每次选择一个棋子移动。就是多个一棵树只有一个棋子的游戏。
-
数据随机可能有数据随机的做法。
-
和二进制有关的按位考虑,可以低位到高位。
-
可以猜三分。三分注意平台。
-
期望题可以考虑 Min-Max 容斥。
-
组合数前缀和用莫队。
-
\(\sum_{i=0}^k(-1)^i {n \choose i} = (-1)^k {n - 1 \choose k}\)。
-
有关位运算的 DP 式子可以 FWT,按位考虑。NFLS SXT2
-
曼哈顿距离 AGC034D \(\lvert x_1 - x_2 \rvert + \lvert y_1 - y_2 \rvert = \max \left\{ (x_1 + y_1) + (- x_2 - y_2), (x_1 - y_1) + (- x_2 + y_2), (- x_1 + y_1) + (x_2 - y_2), (- x_1 - y_1) + (x_2 + y_2) \right\}\)
-
多少次才选中一个元素的期望的操作次数, 等于每一轮均没有一个元素被选中的概率之和。AGC038E
-
欧拉数。长度为 \(n\) 的排列,\(\sum [p_i > p_{i+1}]=m\)。相当于排列分成了 \(n - m\) 段,段内升序,每段不可空。JOISC2018 D1T1
\[\begin{aligned} & \left\langle\begin{matrix}n \\ m\end{matrix}\right\rangle \\ = & \sum_{k=m}^n \binom k m (-1)^{k-m}\sum_{i=0}^{n-k} (-1)^{n-k-i} \binom {n-k} i i^{n} \\ = & \sum_{i=0}^{n-m} (-1)^{n-m-i} i^n\sum_{k=m}^{n-i} \binom k m \binom {n-k} i \\ = & \sum_{i=0}^{n-m} (-1)^{n-m-i} i^n \binom{n + 1}{m + i + 1} \end{aligned} \] -
DP。对于 \(f_i\) 不同 \(j\) 的取值 \(f_{i,j}\) 的取值只有有限个,且权值递增或递减。可以维护分界点。AGC040E
-
有向图无负环那么就是差分约束有解。AGC036D
-
一些线段随机覆盖一个区间,比如一个线段覆盖的位置是 \(x + 0.1 y\),那么把这个区间所有小数部分是 \(y\) 的拿出来离散化。AGC020F
-
比如求连通块大小的期望,可以求 \(\sum_s 大小 \ge s 的个数\)。NFLS SX43 T2
-
树上每个点点权设为点分树上的深度,那么对于两个标号相同的点,它们之间的路径上一定存在一个点点权大于它们的点权。且相邻点权不同。这是充要条件。AGC009D
-
对于完全图的 MST,分成若干个边集分别做 MST,然后对所有答案做 MST 的答案为最终答案。AT_cf17_final_j
-
绝对众数
- 摩尔投票。不可删除,可以撤销。记录二元组即可。需要检查。
- 绝对众数一定是中位数。需要检查。
- 二进制分组。如果 \(x\) 为中位数。设 \(x\) 二进制下第 \(k\) 位位 \(o\),那么只考虑第 \(k\) 位的众数也为 \(o\)。
-
不可删除问题可以考虑离线扫描线,猫树分治一类。
-
\time -v "%M"./A查看动态内存。
Educational Problems
DP
图论
Others
Dilworth
\((A,\le)\) 是偏序集:
- 自反性:\(\forall a\in A,a\le a\)。
- 反对称性:\(\forall a,b\in A\),若 \(a\le b,b\le a\),则 \(a=b\)。
- 传递性:\(\forall a,b,c\in A\),若 \(a\le b,b\le c\),则 \(a\le c\)。
全序集:
对于集合 \(\forall a,b\in B\),都有 \(a\le b\) 或 \(b\le a\),则称 \((B,\le)\) 是全序集。
链:两两可比。
反链:若偏序集 \((B,\le)\) 两两不可比,则称 \(B\) 为反链。
链覆盖,反链覆盖:交集为 \(\varnothing\)。
偏序集高度:最长链的元素个数。
偏序集宽度:最长反链的元素个数。
Dilworth 定理:
偏序集能划分成的最少的全序集个数等于最大反链的元素个数。
DAG 中,链是一些点的集合,对于任意两个点 \(x,y\),满足 \(x\) 能到达 \(y\),或 \(y\) 能到达 \(x\)。
最长反链长度 = 最小链覆盖。
对偶定理:最长链长度 = 最小反链覆盖。
对偶图
对于给定平面图 \(G\),得到对偶图 \(G'\)。
\(G\) 的每个面 \(f\) 上作为 \(G'\) 的一个顶点。
对于 \(G\) 的一条边 \(e\),若 \(e\) 是两个面的公共边,则 \(G'\) 中这两个面的顶点连边。否则 \(e\) 做环穿过 \(e\)。
\((G')'=G\)
摩尔投票
寻找多数元素,即出现次数超过一半以上的元素。
- 如果票数为 \(0\),则将当前元素设置为候选元素,票数设置为 \(1\)。
- 当前元素等于候选元素,票数 \(+1\)。
- 当前元素不等于候选元素,票数 \(-1\)。
最后遍历数组,查看是否有多数元素。
比如树找重心。
拉格朗日插值
点值转系数。\(O(n^2)\)
枚举 \(i\),\(y_i\prod_{j\not=i}\frac 1 {x_i-x_j}\) 可以 \(O(n)\) 计算。
设 \(F(x)=\prod_{i=1}^n(x-x_i)\),\(G_i(x)=\frac {F(x)}{x-x_i}\)。
则
\(x_j=0\) 的情况要特殊判掉。
贝叶斯公式
狄利克雷卷积
满足交换律,结合律。
证明
\[\mu*1=\sum_{d\mid n}\mu(d)=\sum_{i=0}^k(-1)^k {k\choose i}= 0^k \]
莫比乌斯反演
已知 \(g=f*1\),所以 \(\mu *g=f*1*\mu=f*\varepsilon\),即 \(f=\mu * g\)。
已知 \(g(n)=\sum_{n\mid d}f(d)\),则 \(f(n)=\sum_{n\mid d}\mu(\dfrac d n)g(d)\)。
证明
令 \(k=\dfrac d n\),则
\[\sum_{n\mid d}\mu(\dfrac d n)g(d)\\ =\sum_k\mu(k)g(nk)\\ =\sum_k\mu(k)\sum_{(nk)\mid t}f(t)\\ =\sum_t f(t)\sum_{(nk)|t}\mu(k)\\ =\sum_t f(t)\varepsilon(\dfrac t n)\\ = f(n) \]
\(d(x)\) 表示 \(x\) 的约数个数。

浙公网安备 33010602011771号