Pro3918 梦现时刻 题解偶然看到的神秘题,感觉有点意思。 首先考虑式子的组合意义,可以理解为共有 $n$ 个球,可以从前 $b$ 个中选任意个涂白,再在剩下的球中选 $a$ 个涂黑的方案数。 考虑转而枚举前 $b$ 个球中涂黑的数量,得到 $f_{a,b}=\sum_{i=0}^b{2^{b-i}C_b^iC_{n-b}^{a-i}}$ 注意到这个式子很能卷积,考虑将 $b$ 固定,设 $F_b(x)=\sum{f_{a,b}x^a}$,得到 $F_b=(2+x)^b(1+x)^{n-b}$ 此时枚举 $b$ 并动态维护多项式已经可以做了,类似背包和退背包。时间复杂度 $O(m^2)$。
实际上可以直接推出 $f_{a,b}$ 的递推式。考虑 $F_b(x)'=b(2+x)^{b-1}(1+x)^{n-b}+(n-b)(2+x)^b(1+x)^{n-b-1}$ $\quad\quad\;\;\,=bF_{b-1}(x)\frac{1}{1+x}+(n-b)F_b(x)\frac{1}{1+x}$ 于是 $(1+x)F_b(x)'=bF_{b-1}(x)+(n-b)F_b(x)$ 提取系数即得 $(a+1)f_{a+1,b}+af_{a,b}=bf_{a,b-1}+(n-b)f_{a,b}$ 整理一下 $f_{a+1,b}=\frac{1}{a+1}(bf_{a,b-1}+(n-a-b)f_{a,b})$ 预处理逆元直接递推,时间复杂度 $O(m^2)$。 “超级无敌神仙炫酷无敌原神大王”豪华套餐特邀嘉宾。
题目3918 梦现时刻
8
评论
2023-10-10 20:24:35
|