gym102129D

题意

给定序列\(\{a_i\}_{i=1}^k\)\(\{b_i\}_{i=1}^k\)。考虑一个序列\(\{F_i\}_{i=1}^\infty\),满足\(n>k\):

\[F_n = \sum\limits_{i=1}^k a_i F_{n-i}\text{.} \]

你需要找到一个序列\(\{c_i\}_{i=1}^k\),其满足\(n>b_k\):

\[F_n = \sum\limits_{i=1}^k c_i F_{n-b_i}\text{.} \]

\(1 \leq k \leq 128\)\(1 \leq a_i \leq 10^9\)\(1 \leq b_1 < b_2 < \dots < b_k \leq 10^9\)

结果对\(10^9+7\)取模。

做法

令,
\(F(x)=\sum\limits_{i=1}^{\infty} f_ix^i\)\(A(x)=1-\sum\limits_{i=1}^k a_ix^i\)\(B(x)=1-\sum\limits_{i=1}^k c_ix^{b_i}\)
\(P(x)=\sum\limits_{i=1}^{k}f_ix^i\)\(Q(x)=\sum\limits_{i=1}^{b_k}f_ix^i\)

有,

\[\frac{P(x)}{A(x)}=\frac{Q(x)}{B(x)}=F(x) \]

整理,

\[\frac{B(x)}{A(x)}=\frac{Q(x)}{P(x)} \]

引理:有解的充要条件为\(A(x)\)\(B(x)\)的因子。

证明:
充分性显然。
考虑证明必要性,假设\(C(x)=\frac{B(x)}{A(x)}\)最高有效项\(>b_k-k\),则一定存在\(P(x)\)使得\(P(x)C(x)\)最高有效项\(>b_k\),故矛盾。

那么有\(B(x)\mod A(x)=0\)

\(1-\sum\limits_{i=1}^k c_i(x^{b_i}\mod A(x))=0\)
\(1-\sum\limits_{i=1}^k c_i(x^{b_i}\mod A(x))=1-\sum\limits_{i=1}^k c_i\sum \limits_{j=0}^{k-1}d_{i,j}x^j=0\),可以列出\(k\)个等式,直接高斯消元即可。

复杂度\(O(k^3+k^3\log b)\)\(O(k^3+k^2\log b)\),取决于\(x^{b_i}\mod A(x)\)的复杂度。

posted @ 2021-05-20 14:45  Grice  阅读(70)  评论(0)    收藏  举报