字符串
咕咕咕
字符串
咕咕咕
母函数和动态规划相关运用
\(\text{CF755G}\)
考虑设计一个动态规划。
设 \(f_{i,j}\) 表示考虑完了前 \(i\) 个球,目前分了 \(j\) 组的方案数。
有转移如下。
\[f_{i,j}=f_{i-1,j}+f_{i-1,j-1}+f_{i-2,j-1} \]设 \(F_i(x)=\sum_{p=0}^{\inf} f_{i,p} \cdot x^p\)。
那么有如下式子。
\[F_i(x)=F_{i-1}(x) \cdot (x+1)+F_{i-2}(x)\cdot x \]我们再来考虑一点东西。
考虑倍增,有转移式子如下。
\[f_{2i,j}=\sum_{p=0}^j f_{i,p}\cdot f_{i,j-p}+\sum_{p=0}^{j-1}f_{i-1,p}\cdot f_{i-1,j-p-1} \]那么有如下式子。
\[F_{2i}(x)=F_i^2(x)+F_{i-1}^2(x) \cdot x\\ F_{2i-1}(x)=F_i(x) F_{i-1}(x)+F_{i-1}(x)F_{i-2}(x) \cdot x\\ F_{2i-2}(x)=F_{i-1}^2(x)+F_{i-2}^2(x) \cdot x \]由此,我们可以发现,我们只需要在倍增的时候维护 \(F_{2i}(x),F_{2i-1}(x),F_{2i-2}(x)\) 即可。
那么我们现在相当于初始有一个数字 \(1\),然后我们需要支持 \(+1\) 和 $ \times 2$,不难发现上述两个式子分别可以做到。
这意味着我们可以在 \(O(\log n)\) 次 NTT 就可以得到 \(F_n(x)\)。
时间复杂度为 \(O(k \log k \log n)\)。
\(\text{CF1821F}\)
考虑设计动态规划转移方程。
设 \(f_{i,j}\) 表示在最后一个合法位置在 \(i\) 时,已经用了 \(j\) 棵树的方案。
有转移如下。
\[f_{i,j}=\sum_{x=0}^{i-2k-1} f_{x,j-1} + 2\sum_{x=i-2k}^{i-k-1} f_{x,j-1} \]有边界 \(f_{0,0}=1\),由此已经可以得到一个 \(O(nk)\) 的解法了,但是不够优秀,考虑怎么优化这个算法。
不妨设 \(F_i(x)=\sum _{p=0}^{\inf} f_{p,i} \cdot x^p\)。
将上面的转移式子写成多项式的形式。
\[F_j(x)=F_{j-1}(x)\cdot \sum_{i=2k+1}^n x^i + 2F_{j-1}(x)+\sum_{i=k+1}^{2k} x^i\\ F_j(x)=F_{j-1}(x) \left( \sum_{i=2k+1}^n x^i + 2\sum _{i=k+1}^{2k} x^i\right) \]不妨设 \(G(x)=\sum_{i=2k+1}^n x^i + 2\sum _{i=k+1}^{2k} x^i\),则 \(F_j(x)=F_{j-1}(x)G(x)\)。
据此,我们可以得到一个 \(O(n \log n/n \log^2 n)\) 的多项式快速幂做法,但是实际上仍然可以优化。
我们对于 \(G(x)\) 稍作修改,\(G(x)=\sum_{i=2k+1}^{\color{red}\inf} x^i + 2\sum _{i=k+1}^{2k} x^i\),显然这样不影响答案。
写出 \(G\) 的生成函数。
\[G(x)=\dfrac{x^{2k+1}}{1-x}+\dfrac{2x^{k+1}-2x^{2k+1}}{1-x} \\ =\dfrac{2x^{k+1}-x^{2k+1}}{1-x} \\ =x^{k+1}\dfrac{2-x^k}{1-x} \]考虑答案就是 \(\sum _{i=0}^n f_{i,m}\),考虑 \(f_{n,m}\) 怎么求解。
那么就是 \([x^n]G^m(x)=[x^n]\left(x^{k+1}\dfrac{2-x^k}{1-x}\right)^m\)。
\[[x^n]\left(x^{k+1}\dfrac{2-x^k}{1-x}\right)^m\\ =[x^{n-m(k+1)}] \left( \dfrac{2-x^k}{1-x}\right)^m\\ =[x^{n-m(k+1)}] (2-x^k)^m (1-x)^{-m} \]对于两个多项式相乘,求某一项系数可以做到线性。
至于求解 \(\sum _{i=0}^n f_{i,m}\),只要推一下就发现还是一个式子可以解决的。
至此,本题在 \(O(n)\) 的时间复杂度内解决。
咕咕咕
杂题选讲
咕咕咕
杂题选讲
咕咕咕
标签:cdot,dfrac,讲课,落实,2i,APIO2023,式子,sum,2k From: https://www.cnblogs.com/OccasionalDreamer/p/17423100.html