两个 GF 转化技巧
1
常系数齐次线性递推转 \([x^n]{P(x)\over Q(x)}\)。
递推:已知 \(a_0,\ldots,a_{k-1}\) 和 \(b_1,\ldots,b_k\),且 \(a_i=\sum_{j=1}^ib_ja_{i-j} \ (i\geq k)\),求 \(a_n\)。
记 \(A(x)=\sum_{i\geq0}a_ix^i,p_i=[x^i]P(x),q_i=[x^i]Q(x)\)。那么 \(A(x)Q(x)=P(x)\)。
钦定 \(\forall i\geq k,p_i=0\)。故对于 \(i\geq k\),有:
又因为:
故我们构造 \(q_0=1,q_j=-[j\leq k]b_j\) 即可。
此时我们知道了完整的 \(Q(x)\),而 \(P(x)\equiv A(x)Q(x)\pmod{x^k}\),这样就得到了完整的 \(P(x)\)。
概括:\(Q(x)=1-B(x),P(x)=A(x)Q(x)\bmod x^k\)。
接下来可以套 Bostan-Mori。正着反着用都可以,于是也能用来手推 GF \(\longleftrightarrow\) 递推(例题:整数的 lqp 拆分)。
2
简单的半在线卷积转乘法逆(复杂的似乎转不了)。
给出 \(f_0\),已知 \(g_1,\ldots,g_n\),\(f_i=\sum_{j=1}^ig_jf_{i-j}\),求 \(f_1,\ldots,f_n\)。
首先 \(f_0=0\) 时 \(f\) 是全 \(0\),直接判掉。
否则设 \(f\) 的 OGF 为 \(F(x)\),构造 OGF \(H(x)\),使得 \(F(x)={1\over H(x)}\)。
那么有 \(f_0h_0=1\),得出 \(h_0={1\over f_0}\)。
对于 \(i>0\),\(\sum_{j=0}^ih_jf_{i-j}=0\)。又有 \(f_i=\sum_{j=1}^ig_jf_{i-j}\),整理一下是 \(\sum_{j=0}^ig_jf_{i-j}=0,g_0=-1\),乘 \(-h_0\) 得到 \(\sum_{j=0}^ig'_jf_{i-j}=0,g'_j=-g_jh_0,g'_0=h_0\)。现在有 \(g'_0=h_0\),那么令 \(h_i=g'_i=-{g_i\over f_0} \ (i\geq0)\) 即可。
概括一下,即 \(H(x)={1-G(x)\over f_0}\)。
2025.7.17
浙公网安备 33010602011771号