counting题解

img

\(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)\)

posted @ 2023-09-30 20:31  Linnyx  阅读(26)  评论(0编辑  收藏  举报