D6T3

发布时间 2023-05-29 20:06:19作者: 云浅知处

考虑长为 \(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\) 的问题。