ICPC2021银川C

题外话

问了下出题人(好像是?),做法跟我差不多,发一下

做法

有,

\[f_{i,j}=f_{i-1,j}+f_{i-1,j-1}(a_i-(j-1)) \]

翻转下标:\(g_{i,j}=f_{i,i-j}\),有,

\[g_{i,j}=g_{i-1,j-1}+g_{i,j}(a_i-(i-j-1)) \]

整理得

\[g_{i,j}=g_{i-1,j-1}+g_{i,j}(j+1)++g_{i,j}(a_i-i) \]

对于最后一种转移,可以分治fft,单独考虑方程,

\[g_{i,j}=g_{i-1,j-1}+g_{i,j}(j+1) \]

根据其组合意义,容易得到:

\[g_{i,j}=[\frac{x^i}{i!}]e^x\frac{(e^x-1)^j}{j!} \]

那么考虑\(g_{i,?}\)这一行求和,有:

\[\sum g_{i,j}=[\frac{x^i}{i!}]e^xe^{e^x-1} \]

对于\(n\)的答案,令\(A(x)=\prod\limits_{i=1}^n ((a_i-i)x+1)\)\(B(x)=e^xe^{e^x-1}\)

\[ans_n=\sum [x^i]A(x)[x^{n-i}]B(x) \]

这个答案,显然可以通过分治fft解决:每次递归到右边时用\(A(x)_{l,mid}\)做一次减法卷积。

posted @ 2021-05-22 16:52  Grice  阅读(236)  评论(0编辑  收藏  举报