Loading

技巧与结论

Page Views Count

关于子序列的问题,回归到原序列中是选定位置 \(p_1,p_2\dots p_k\),对应值 \(v_1,v_2\dots v_k\),此时 \((p_k,n]\) 部分可以任意选,\([1,p1)\) 不能有 \(v_1\)\((p1,p2)\) 不能有 \(v_2\),以此类推。

例题:CodeForces-660E Different Subsets For All Tuples *2300


字典序比较转化成一个前缀一致,后一位不同,枚举不同的这一位。要求字典序较大的最小串或字典序较小的最大串,优先匹配尽量多之后再出现不同位置。

例题:CodeForces-1037H Security *3200


对于任何满足 \(f_n=xf_{n-1}+yf_{n-2}\) 的序列,都有:

\[f_{n+m}=y\times f_{n}\times f_{m-1}+f_{n+1}\times f_{m} \]

\(\gcd(x,y)=1\) 时,还满足:

\[\gcd(f_n,f_m)=f_{\gcd(n,m)} \]

证明:闲话

例题:Luogu-P1306 斐波那契公约数BZOJ-4833 最小公倍佩尔数


一个由中国剩余定理产生的推论:

对于同余方程组:

\[\begin{cases} x_1^a\equiv b\pmod {p_1^{\alpha_1}}\\ x_2^a\equiv b\pmod {p_2^{\alpha_2}}\\ \cdots\\ x_k^a\equiv b\pmod {p_k^{\alpha_k}} \end{cases}\]

以及同余方程:

\[x^a\equiv b\pmod {\prod_{i=1}^k p_i^{\alpha_i}} \]

假定所有 \(x\) 的取值范围均为小于方程模数的自然数,则该方程解的个数等于拆成若干模数互质的方程解的个数之积

显然满足 \(x^a \bmod {\prod_{i=1}^k p_i^{\alpha_i}}=b\) 就一定满足 \(x^a\bmod p_i^{\alpha_i}=b\)

于是方程的解 \(x\) 一定与方程组中每个方程 \(i\) 的一个解 \(x_{i,j}\) 在模 \(p_i^{\alpha_i}\) 意义下同余,从而构造出线性同余方程组,解在给定取值范围内是唯一的。

因此存在多少组构造出的线性同余方程组,就存在多少个解。


在点分树上,节点 \(u\)\(v\) 的祖先当且仅当原树上路径 \((u,v)\)\(u\) 是第一个被选取的节点。

随机选取下一个分治点同样具有这样的性质,复杂度的期望可根据期望的线性性求出。即一个节点的深度为其产生的贡献,深度等价于点分树上祖先个数(包括自己)。

上面已经说到 \(u\)\(v\) 的祖先当且仅当第一个被选取,概率为 \(\frac{1}{\mathrm{dist}(u,v)}\)

因此答案应为:

\[\sum_{u=1}^n\sum_{v=1}^n\frac{1}{\mathrm{dist}(u,v)} \]

可以统计每个距离对应路径个数,使用点分治以及 FFT 加速卷积,复杂度 \(O(n\log^2n)\)

例题:BZOJ-3451 Normal


期望的线性性:

\[\begin{aligned} E(X+Y)&=\sum_{x}\sum_{y} (x+y)P(X=x,Y=y)\\ &=\sum_{x}\sum_{y} xP(X=x,Y=y)+\sum_{x}\sum_{y} yP(X=x,Y=y)\\ &=\sum_{x} x\sum_{y} P(X=x,Y=y)+\sum_{y} y\sum_{x} P(X=x,Y=y)\\ &=\sum_{x} x\sum_{y} P(X=x\mid Y=y)\times P(Y=y)+\sum_{y} y\sum_{x} P(Y=y\mid X=x)\times P(X=x)\\ &=\sum_{x} xP(X=x)+\sum_{y} yP(Y=y)\\ &=E(X)+E(Y) \end{aligned}\]


计算 \(\sum_{l=1}^n \sum_{r=l}^n f(l,r)\) 可以考虑计算 \(\sum_{l=1}^n \sum_{r=1}^n f(\min(l,r),\max(l,r))\) 再处理。


\[\sum_{i=1}^m E(x=i)=\sum_{i=1}^m i\times P(x=i)=\sum_{i=1}^m P(x\ge i) \]

例题:AtCoder-ABC295_E Kth Number


平均数等于 \(x\) 等价于 \(\sum_{i=1}^n s_i-x=0\),也即 \(\sum_{s_i<x} x-s_i=\sum_{s_i>x} s_i-x\)

例题:AtCoder-ARC104_D Multiset Mean


\(\mathrm{LIS}\) 的计数可以枚举偏序关系(离散化后的数组)再填值域。

例题:AtCoder-ARC104_E Random LIS


博弈论可以考虑“模仿操作”,即后手会由于某种目的模仿先手的操作从而保持局面没有实质改变。


对于树上任意节点 \(u\),其到所有节点路径中最大的一条 \((u,v)\)\(v\) 一定是树上直径的一端点。

证明考虑路径 \((u,v)\) 以及直径 \((x,y)\) 拐点 \(p\)\(q\),如果 \((u,v)\) 最大则说明将路径与直径各自一半以及拐点的连边应当比直径更大。

例题:AtCoder-ARC108_F Paint Tree


单模式串子串匹配或回文子序列匹配,可以考虑使用卷积。

对于回文而言就是卷到对称中心二倍的位置,正常的匹配可以将模式串翻转就等价于回文了。

通配符匹配可以先卷积求出有多少位置有通配符,再将通配符设成 \(0\)\(s\) 串字符从小到大设成 \(base^0,base^1\dots base^{25}\)\(t\) 串字符从小到大设成 \(base^{25},base^{24}\dots base^0\),卷积后结果应该是 \(base^{25}\) 的幂,指数为长度减去通配符个数。

例题:Luogu-P4199 万径人踪灭Luogu-P4173 残缺的字符串


答案要求所有满足条件集合的 \(\gcd\) 之和,大多是只考虑 \(i\) 的倍数再容斥,同时只考虑 \(i\) 的倍数指向了根号分治。


题目形如每个元素有一权值 \(v_i\),可以放在位置集合 \(S_i\),每个位置只能放 \(a_j\) 个元素,求合法的最大权值和。

使用 拟阵 或模拟费用流的每次增广可以证明从大到小能放即放一定不劣,接下来就是常规二分图匹配,从大到小加入元素判断是否有完美匹配,使用 Hall 定理。可能需要数据结构维护。

例题:Luogu-P9168 省选联考 2023 人员调度


多组询问,每次询问规模为 \(k_i\)\(\sum k_i\)\(n\) 同级,则 \(k_i\) 的取值有 \(O(\sqrt{n})\) 中,可以离线暴力。


树上距离满足某个条件的二元组、三元组计数,考虑在 \(\mathrm{LCA}\) 而不是路径交点位置统计,这样可以长链剖分优化。

例题:Luogu-P5904 POI 2014 HOT-Hotels 加强版


树上黑白染色连通块统计,在连通块深度最小位置记录答案,那么只需判断 \(col_u=1\)\(col_{fa_{u}}=0\)


有序链表插入 \(O(\log n)\),删除 \(O(1)\),可以使用只删除莫队降低复杂度。

例题:Luogu-P8078 WC 2022 秃子酋长


树上 DP 和组合计数有关时,需要排列数之类的情况可以改成算概率,这样子树间独立。

例题:UniversalOJ-607 UR#20 跳蚤电话


树上 \(k\) 级祖先可以重链剖分在 DFS 序上暴跳链顶,再在某一重链取到结果(重链上 DFS 序连续),比倍增常数小。

树上关于 \(k\) 级祖先的二分也可以重链剖分在 DFS 序上暴跳链顶,再在某一重链上二分,比直接二分少一个 \(\log\)


莫比乌斯反演后不能直接数论分块且多次询问的问题,可以考虑对 \(\left\lfloor\dfrac{n}{T}\right\rfloor\) 关于 \(B\) 分治,通常是大于直接枚举暴力算,小于预处理函数。

例题:Luogu-P4240 毒瘤之神的考验Luogu-P5572 CmdOI 2019 简单的数论题


形如 \(\left|\sum a_i\right|\) 的可以设 \(S^+=\sum a_i[a_i>0],S^-=\sum -a_i[a_i<0]\),这样就转成 \(\max(S^+,S^-)-\min(S^+,S^-)=S^++S^--2\min(S^+,S^-)=\sum |a_i|-2\min(S^+,S^-)\),可以化简问题。

例题:AtCoder-ARC107_F Sum of Abs


统计有多少节点是祖先中第一个符合条件的,也就是有多少节点本身合法且父亲不合法,就是对合法节点构成的子树计数,有等式:

\[\sum_{v\in \mathrm{subtree}(u)} deg_v=2siz_u-1 \]

因此令合法节点权值为 \(2-deg_u\),求权值和即可。(应用前提是满足父亲合法儿子一定合法。)

例题:Luogu-P4183 USACO 2018 JAN Cow at Large P


一个图的最小度数不会大于 \(\sqrt{2m}\),可以暴力枚举。

例题:Luogu-P8905 USACO 2022 DEC Strongest Friendship Group G


有等式 \(n^2=2\binom{n}{2}+\binom{n}{1}\) 成立,当贡献为平方时,可以考虑拆成点对计算。


曼哈顿距离转切比雪夫距离:

曼哈顿距离 \(|x_1-x_2|+|y_1-y_2|\) 可以表示为 \(\max(x_1-x_2+y_1-y_2,x_1-x_2+y_2-y_1,x_2-x_1+y_1-y_2,x_2-x_1+y_2-y_1)\),这等价于 \(\max(|(x_1+y_1)-(x_2+y_2)|,|(x_1-y_1)-(x_2-y_2)|)\),也就是 \((x,y)\) 改为 \((x+y,x-y)\)

切比雪夫距离转曼哈顿距离:

直接倒着回去变成 \((\frac{x+y}{2},\frac{x-y}{2})\) 即可。

例题:AtCoder-AGC034_D Manhattan Max Matching

posted @ 2023-01-12 16:03  SoyTony  阅读(231)  评论(1编辑  收藏  举报