考虑长为 \(L\) 的一段的贡献,发现是
\[G_L=\sum_{i=0}^{L-1}a^ib^{L-1-i}c=[x^i]\dfrac{cx}{(1-ax)(1-bx)} \]设 \(g(x)=\frac{cx}{(1-ax)(1-bx)}\),那么有
\[F(i)=[x^i]\dfrac{1}{1-g(x)}=[x^i]\dfrac{cx}{(1-ax)(1-bx)-cx}+1 \]分母展开是 \(abx^2-(a+b+c)x+1\),此时可以根据求逆的式子写出
\[F(i)=\begin{cases}(a+b+c)F(i-1)-abF(i-2)&,i\ge 2\\a+b+c&,i=1\\1&,i=0\end{cases} \]因此可以 \(O(m)\) 计算 \(F\)。
进一步展开分式即可写出 \(F(i)=\alpha^i+\beta^i\) 的形式,然后利用 \(\sum_{i=0}^m\binom{m}{i}\alpha^i=(\alpha+1)^m\) 在 \(O(\log m)\) 时间内求解。具体来说,我们求出方程 \(abx^2-(a+b+c)x+1=0\) 的两根
\[\alpha,\beta=\dfrac{a+b+c\pm\sqrt{(a+b+c)^2-4ab}}{2ab} \]那么 \(F\) 的 OGF 就是
\[\dfrac{cx}{ab}\times \dfrac{1}{(x-\alpha)(x-\beta )}+1=\dfrac{cx}{ab(\alpha-\beta)}\times\left(\dfrac{1}{\beta-x}-\dfrac{1}{\alpha-x}\right)+1 \]这里 \(\alpha=\beta\) 当且仅当 \((a+b+c)^2=4ab\) 即 \(a=b,c=0\),判掉 \(c=0\) 即可。
展开之后就可以得到
\[F(i)=\frac{c}{ab(\alpha-\beta)}\times\left((1/\beta)^i-(1/\alpha)^i\right) \]因此
\[\sum_{i=0}^m\binom{m}{i}F(i)=\dfrac{c}{ab(\alpha-\beta)}\big(\left((\beta+1)/{\beta}\right)^m-((\alpha+1)/\alpha)^m\big) \]扩个域用快速幂就能 \(O(\log m)\) 计算啦
由于此题中扩域只需要扩 \(\sqrt{(a+b+c)^2-4ab}\),且求逆也只需要对 \(\alpha,\beta,\alpha-\beta\) 求逆,因此本题中不会出现分母为 \(0\) 的问题。
标签:ab,dfrac,beta,cx,right,alpha,D6T3 From: https://www.cnblogs.com/YunQianQwQ/p/17441543.html