BSOJ2482题解

被这题偷袭了。。。还是记录一下吧。

如果那个老哥不会拿走就很好做了。设 \(f_k=[x^k]F(x)=[x^k]\prod_{i=1}^{n}(1-p_i+p_ix)\),答案就是 \(\sum_{i=0} f_i\times a_i\)

简化一下过程,设 \(y_i=\frac{p_i}{1-p_i}\),然后把上面的 \(1-p_i+p_ix\) 替换成 \(1+y_i\),最后再给答案乘上 \(\prod 1-p_i\),答案还是一样的。

但是显然不是这样的。考虑对于拿走一个位置的答案应该如何计算。

\(g_{i,k}=[x^k]\frac{F(x)}{1+y_ix}\) 就可以计算了。来看看这个 \(g\) 是个什么东西:

\[\sum_{k=0}^{n}f_kx^k\sum_{j=0}(-y_i)^{j}x^j \]

\[g_{i,k}=\sum_{j=0}^{k}f_j(-y_i)^{k-j} \]

那么有:

\[ans_i=\sum_{k=0}^{n-1}a_k\times g_{i,k}=\sum_{k=0}^{n-1}a_k\sum_{j=0}^{k}f_j(-y_i)^{k-j} \]

\[ans_i=\sum_{j=0}^{n-1}(-y_i)^j\sum_{k=j}^{n}a_k\times f_{k-j} \]

后面是一个差卷积,卷完之后就是一个多点求值,直接套板子就好了。

posted @ 2022-06-29 18:16  Prean  阅读(11)  评论(0编辑  收藏  举报
var canShowAdsense=function(){return !!0};