gym102129D
题意
给定序列\(\{a_i\}_{i=1}^k\)和\(\{b_i\}_{i=1}^k\)。考虑一个序列\(\{F_i\}_{i=1}^\infty\),满足\(n>k\):
你需要找到一个序列\(\{c_i\}_{i=1}^k\),其满足\(n>b_k\):
\(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\)。
有,
整理,
引理:有解的充要条件为\(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)\)的复杂度。