• 【考试总结】20220802


    西克

    找到满足 \(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\) 处合并两份权值即可。

  • 相关阅读:
    编程语言的简介
    ava 8 stream的详细用法
    Java 8 Steam 例子整理
    redis常用命令
    常用正则表达式
    保留一些常用文章
    tag的简单使用
    GitFlow详解教程
    Git基本命令和GitFlow工作流
    Redis 2.8.18 安装报错 error: jemalloc/jemalloc.h: No such file or directory
  • 原文地址:https://www.cnblogs.com/yspm/p/TestReview20220802.html
Copyright © 2020-2023  润新知