2025.5.13 闲话
歌:动く、动く .
考虑一下怎么使用 GF 方法推导反射容斥?
kernel method
列三元生成函数 \(F(x,y;t)\),\(x,y\) 刻画两条线的限制、\(t\) 计量步数,则有:
\[\begin{aligned}F(x,y;t)&=1+t(xy^{-1}(F(x,y;t)-F(x,0;t))+x^{-1}y(F(x,y;t)-F(0,y;t)))\\&=\dfrac{xy-tx^2F(x,0,t)-ty^2F(0,y,t)}{xy-tx^2-ty^2}\end{aligned}
\]
然后就爆炸了根本做不了(
如果谁会做请教导一下 /kel
EI 在生成函数的败北知道我们,通过迭代列可以推导出反射容斥的结果:
\[F_m(x)=\begin{cases}1&m=0\\\dfrac{1}{1-xF_{m-1}(x)}&m>0\end{cases} \]求 \([x^n]F_m(x)\) .
由于此处的迭代列是线性分式变换,所以可以直接写出线性递推:
\[F_m(x)=\dfrac{P(x)}{Q(x)}\qquad\text{where }\begin{bmatrix}P(x)\\Q(x)\end{bmatrix}=\begin{bmatrix}&1\\-x&1\end{bmatrix}^m\begin{bmatrix}1\\1\end{bmatrix}
\]
令 \(\lambda=\frac{1-\sqrt{1-4x}}2\) 是一个特征根,则就是要计算:
\[[x^n]\dfrac{(1-\lambda)^{m+1}-\lambda^{m+1}}{(1-\lambda)^{m+2}-\lambda^{m+2}}
\]
由于 \(\lambda(1-\lambda)=x\),使用 Lagrange 反演:
\[[x^n]F_m(x)=\dfrac1n[x^n]\left(\dfrac{(1-x)^{m+1}-x^{m+1}}{(1-x)^{m+2}-x^{m+2}}\right)'\left(\dfrac x{x(1-x)}\right)^n
\]
可以发现左边其实只有 \(\Theta(\frac nm)\) 项有值,那么暴力卷积即可 \(\Theta(\frac nm)\) .
图

以下是博客签名,正文无关
本文来自博客园,作者:Jijidawang,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/18874408
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ

浙公网安备 33010602011771号