题目大意
一个长度为\(n\)的序列\(a\)和长度为\(m\)的序列\(b\),对于\(1..t\)的每个\(k\),求
\[
\frac{1}{nm}\sum_{x=1}^n \sum_{y=1}^m (a_x+b_y)^k
\]
\(n,m,t\leq 10^5\)
题解
\[
\begin{aligned}
ans&=\frac{1}{nm}\sum_{x=1}^n \sum_{y=1}^m \sum_{i=0}^k {k\choose i} a_x^i b_y^{k-i}\\
&=\frac{1}{nm} \sum_{i=0}^k \sum_{x=1}^n \sum_{y=1}^m {k\choose i} a_x^i b_y^{k-i}\\
&=\frac{k!}{nm} \sum_{i=0}^k \sum \frac{a^i}{i!} \sum \frac{b^{k-i}}{(k-i)!}
\end{aligned}
\]
下面考虑如何对所有\(k\)求出\(\sum_{j=1}^n a_j^i\)。
写出\(OGF\)后变换枚举顺序。
\[
\begin{aligned}
A&=\sum_{i=0}^\infty x^i \sum_{j=1}^n a_j^i\\
&=\sum_{i=1}^n \sum_{j=0}^\infty a_i^j x^j\\
&=\sum_{i=1}^n \frac{1}{1-a_ix}
\end{aligned}
\]
其实这里就可以分治然后通分了,但是常数比较大。
如果对函数嵌套起来求导的那个玩意比较熟悉的话可以想到\(ln(1-ax)'=\frac{-a}{1-ax}\)
\[
\begin{aligned}
A&=\sum \frac{1}{1-ax}\\
&=\sum 1-x\frac{-a}{1-ax}\\
&=n-x\sum ln(1-ax)'\\
&=n-x*ln(\prod 1-ax)'
\end{aligned}
\]
分治求出那个积之后带回去求可以求出\(A,B\),直接卷积即可。