题解 P7423 【简单构造题】
qwaszx
·
·
题解
鱼推得有点过于神秘,,,展开了大量的不必要的细节. 这是个正常的推法
自然的想法是拆开贡献,长为 i 的区间有贡献系数 (n-i+1)m^{n-i},于是只需要求出每种长度的区间的贡献之和. 对每种权值分别考虑,则答案的 EGF 即
\prod_{i=1}^m\left(1+\sum_{j\geq 1}\frac{ji^jx^j}{j!}\right)=\prod_{i=1}^m(1+ixe^{ix})
我们直接一般化为计算
\prod_{i=1}^mF(ix)
简单起见,假设 [x^0]F(x)=1. 取对数,得
\begin{aligned}
&\sum_{i=1}^m\ln F(ix)
\\=&\sum_{i=1}^m\sum_{j\geq 1}\left([x^j]\ln F(x)\right)i^j
\\=&\sum_{j\geq 1}\left([x^j]\ln F(x)\right)\left(\sum_{i=1}^mi^j\right)
\end{aligned}
于是只需要求出 \ln F(x) 以及自然数幂和. 自然数幂和容易计算:
\sum_{i\geq 0}\frac{x^i}{i!}\sum_{j=1}^mj^i=\sum_{j=1}^me^{jx}=e^x\frac{1-e^{mx}}{1-e^x}
把两个东西点乘最后 exp 回去就好了.