题目大意
定义一个数列 \(\{a_0 \dots a_{n - 1} \}\) 的递推式为满足下式的序列 \(\{r_0\dots r_m\}\):
\[\sum_{j = 0} ^ m r_j a_{i - j} = 0, \forall i \ge m
\]
\(m\) 称为该递推式的阶数。特别地,\(r_0\neq 0\)。
给你一个无限长的数列 \(\{a_i\}\) 的前 \(n\) 项以及数列 \(\{a_i\}\) 的一个阶数为 \(n\) 的递推式 \(\{b_i\}\)。
要求求出数列 \(\{a_i\}\) 的所有项之和。答案对 \(998244353\) 取模。
Solution
既然题目让我们求出 \(\{a_i\}\) 的所有项之和,提示我们肯定是有公式的,下面开始推式子。
首先看 \(n=1\) 时,我们有 \(b_0a_{i}+b_1a_{i-1}=0\),于是 \(a_i=-\frac{b_1}{b_0} a_{i-1}\),这是一个等比数列,直接用等比数列求和公式即可,这样有30pts,下面考虑通解。
对于条件,我们有
\[b_0a_{n}+b_1a_{n-1}+ \dots +b_na_0=0
\]
也就是
\[a_n=-\frac{\sum_{j=1}^{n}b_ja_{n-j}}{b_0}
\]
我们记
\[f_i=\sum_{j=1}^{n}b_ja_{i-j}
\]
那么
\[a_i=-\frac{f_i}{b_0}
\]
我们写出 \(f_n,f_{n+1} \dots\)
\[f_n=b_1a_{n-1}+b_2a_{n-2}+\dots b_na_0
\]
\[f_{n+1}=b_1a_{n}+b_2a_{n-1}+\dots b_na_1
\]
\[f_{n+2}=b_1a_{n+1}+b_2a_{n}+\dots b_na_2
\]
\[\dots
\]
将上面左边与右边累加即可得到
\[\sum_{i=n}^{+∞}f_{i}=b_1\sum_{j=n-1}^{+∞}a_j + b_2\sum_{j=n-2}^{+∞}a_j + \dots +b_n\sum_{j=0}^{+∞}a_j
\]
注意到右边的关于 \(a\) 的和式有很多重复的部分,我们将 \(\sum_{j=n}^{+∞}a_j\) 记做 \(S\)。那么右边为
\[b_1(a_{n-1}+S)+b_2(a_{n-2}+a_{n-1}+S)+\dots +b_n(a_0+\dots +b{n-1}+S)
\]
我们再记
\[g_i=\sum_{j=0}^{i}a_j
\]
那么右边等于
\[b_1(g_{n-1}-g_{n-2}+S)
\]
\[+b_2(g_{n-1}-g_{n-3}+S)
\]
\[+b_3(g_{n-1}-g_{n-4}+S)
\]
\[\dots
\]
\[+b_n(g_{n-1}-0+S)
\]
展开合并可以得到
\[(g_{n-1}+S)\sum_{j=1}^{n}b_j-\sum_{j=1}^{n}b_jg_{n-1-j}
\]
我们记
\[\sum_{j=1}^{n}b_j=C_1
\]
\[\sum_{j=1}^{n}b_jg_{n-1-j}=C_2
\]
注意这两个都是常数,那么我们的右边就等于
\[(g_{n-1}+S)C_1-C_2
\]
由于我们有
\[a_i=-\frac{f_i}{b_0}
\]
而我们的左边为
\[\sum_{i=n}^{+∞}f_{i}=-b_0\sum_{i=n}^{+∞}a_i=-b_0(g_{n-1}+S)
\]
由于左边等于右边,所以
\[-b_0(g_{n-1}+S)=(g_{n-1}+S)C_1-C_2
\]
而我们所要求的答案为
\[Ans=g_{n-1}+S
\]
所以
\[-b_0Ans=C_1Ans-C_2
\]
\[(C_1+b_0)Ans=C_2
\]
\[Ans=\frac{C_2}{C_1+b_0}
\]
这样用费马小定理求解逆元就可以了。
Ac Code
浙公网安备 33010602011771号