首页 > 其他 > 详细

「loj - 6703」小 Q 的序列

时间:2021-03-31 14:06:49      阅读:29      评论:0      收藏:0      [点我收藏+]

link。


https://codeforces.com/blog/entry/76447 里面抄一个代数做法。

考虑朴素 dp:记 \(f_{i, j} = f_{i - 1, j} + (j + a_i)\times f_{i - 1, j - 1}\),不太好做。

做变换 \(g_{i, j} = f_{i, i - j}\),并记 \(b_i = a_i + i\),则有 \(g_{i,j} = g_{i - 1, j - 1} + (b_i - j)\times g_{i - 1, j}\)

其对应的 OGF 满足 \(G_i = x(G_{i - 1} - G‘_{i - 1}) + b_iG_{i - 1}\)

根据高中数学,我们可以构造 \(H_i = G_ie^{-x}\),则有 \(H_i = b_iH_{i-1} - xH‘_{i-1}\)

注意算子 \(\vartheta = x\frac{d}{dx}\) 只和本位系数有关,也就是说有 \(h_{n, j} = h_{0, j}\times\prod_i(b_i - j) = \frac{(-1)^j}{j!}\times\prod_i(b_i - j)\)

之后可以分治 fft 算出 \(B(x) = \prod_i(b_i - x)\),然后多点求值求出 \(H_n\)


但是在本题中我们只需要算 \(\sum_i g_{n, i}\),是否有更好的方法?

我们知道:

\[\begin{aligned} g_{n,m} &= \sum_j \frac{(-1)^j}{j!}\times\prod_i(b_i - j)\times\frac{1}{(m-j)!} \&= \sum_p B_p\times\left(\sum_j \frac{(-1)^j}{j!}\times j^{n-p}\times\frac{1}{(m-j)!}\right) \\end{aligned} \]

其中 \(B_p = [x^p]\prod_i(b_i - x)\),一样分治 fft 算出。

考虑将 \(j^{n - p}\) 展开成下降幂形式:

\[\begin{aligned} & \sum_j \frac{(-1)^j}{j!}\times j^{n-p}\times\frac{1}{(m-j)!} \=& \sum_{k}{n - p\brace k}\times\left(\sum_j \frac{(-1)^j}{j!}\times\binom{j}{k}\times k!\times\frac{1}{(m-j)!}\right) \=& \sum_{k}{n - p\brace k}\times\left(\frac{\sum_j\binom{m-k}{j-k }(-1)^j}{(m-k)!}\right) \=& (-1)^m{n - p\brace m} \end{aligned} \]

\(\sum_i g_{n, i} = \sum_p B_p \times \left(\sum_i(-1)^i{n - p\brace i}\right)\)。接下来只需要计算 \(s_{n-p} = \sum_i(-1)^i{n - p\brace i}\)

继续用代数做法。设出 EGF:\(S(x) = \sum\frac{s_i}{i!}x^i\)。代入:

\[\begin{aligned} S(x) =& \sum_{i}\frac{\sum_m(-1)^m{i\brace m}}{i!}x^i \=& \sum_m(-1)^m\left(\sum_{i}\frac{{i\brace m}}{i!}x^i\right) \=& \sum_m(-1)^m\frac{(e^x-1)^m}{m!} \=& \exp(1-e^x)\\end{aligned} \]

做个多项式 exp 即可求出。这真的更优秀吗。

「loj - 6703」小 Q 的序列

原文:https://www.cnblogs.com/Tiw-Air-OAO/p/14600661.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!