【考试总结】2022-08-02

西克

找到满足 \(x\) 的祖先 \(z\) 中满足 \(a_z=b_x\) 的中最靠下的一个。那么正向树上倍增可以求出来 \(Qx\)\(\rm LCA(Qx,Qy)\) 的结果。剩下半边可以一个一个重链跳。在每条重链上先找到第一个 \(a_p\) 等于手上颜色的 \(p\)。预处理一个反向的倍增,跳到下一条重链的接口处

\(\Theta(n\log^2n)\)

尼特

求出来所有串的最大匹配之和除以总方案数

\(f_{i,j}\) 表示前 \(i\) 个字符第 \(i\) 个删掉,且和最大匹配差了 \(j\) 的方案数。同时设 \(g_{i,j}\) 表示在相同条件下前 \(i\) 个数字的最大匹配数之和。

转移需要分 \(S_{i}=S_{i+1}\)\(S_{i}\neq S_{i+1}\) 讨论。不难发现 \(S_i\) 具体值不重要,于是都可以叠到一起做。或者说能快速幂,具体而言:

  • \(S_i=S_{i+1}\)

    选择 \(T_i=S_i\) 或者 \(T_{i}\neq S_i\) 不会改变第二维。如果选择相同会使得最大匹配加一,从而 \(g_{i,j}+\leftarrow f_{i,j}\)\(f\) 的转移有 \(m-1\) 的系数

  • \(S_{i}\neq S_{i+1}\)

    \(T_i=S_i\) 会让 \(j\) 减少,如果 \(j\) 本身是 \(0\) 会使得最大匹配增加

    \(T_i=S_{i+1}\) 会让最大匹配增加

    \(T_{i}\neq S_{i+1},S_{i}\) 时最大匹配不变,\(f\) 的转移有 \(m-2\) 的系数

前者转移统一移后做,第二部分转移写乘 \(GF\) 之后可以短多项式快速幂得到 \(G\) 。前者是等比数列求和。

苯为

长度为 \(n\) 的环染 \(k\) 中颜色的方案数是 \((k-1)^n+(-1)^{n}(k-1)\)

这题本身是求出来树上长度为 \(i\) 的链的数量,将它们连成长度为 \((A+1)i\) 的环染色,剩下的点染 \((k-1)\) 种颜色。不过这个过程相当于给边带了权,那么设 \(f_{i}\) 表示 \(i\) 子树中所有到 \(i\) 的链的权值总和,在 \(\rm LCA\) 处合并两份权值即可。

posted @ 2022-08-05 10:26  没学完四大礼包不改名  阅读(132)  评论(0)    收藏  举报