counting题解
\(N,M\le 1e7\)
接着反射容斥,考虑这道题怎么做
如果去枚举不动步数,加上反射容斥,直接T飞了
把-1/0/1操作转换一下,就成了0/1/2
如果没有限制(不能<0或>m),n步方案就是\((1+x+x^2)^n\)
设\(H=1+x+x^2\quad F=H^n\)
那么对两边求导:
\[nH^{n-1}H'=F'
\]
\[F'H=nFH'
\]
我们知道
\[H=1+x+x^2,H'=1+2x
\]
\[[x^i]F'=[x^{i+1}]F*(i+1)
\]
所以:
\[
\begin{aligned}
[x^i](F'H) &= [x^i]F'+[x^{i-1}]F'+[x^{i-2}]F' \\ &=(i+1)[x^{i+1}]F+i[x^i]F+(i-1)[x^{i-1}]F
\end{aligned}
\]
\[
\begin{aligned}
n[x^i]FH'=n[x^i]F+2n[x^{i-1}]F &= (i+1)[x^{i+1}]F+i[x^i]F+(i-1)[x^{i-1}]F\\
[x^{i+1}]F&=\frac{(n-i)[x^i]F+(2n-i+1)[x^{i-1}]F}{i+1}\\
&=\frac{n+1}{i+1}([x^i]F+2[x^{i-1}]F)-[x^i]F-[x^{i-1}]F
\end{aligned}
\]
就可以直接递推得出系数了
反射容斥已经说过了
时间复杂度: \(O(n)\)