CF755G PolandBall and Many Other Balls 做题记录

有一排 nn 个球,定义一个组可以只包含一个球或者包含两个相邻的球。现在一个球只能分到一个组中,求从这些球中取出 kk 组的方案数。

n109n\le 10^9k<215k<2^{15}

dpn,k=dpn1,k+dpn1,k1+dpn2,k1dp_{n,k}=dp_{n-1,k}+dp_{n-1,k-1}+dp_{n-2,k-1}

dpa+b,k=(i=0kdpa,idpb,ki)+(i=0k1dpa1,i+dpb1,k1i)dp_{a+b,k}=\left(\sum\limits_{i=0}^k dp_{a,i}dp_{b,k-i}\right)+\left(\sum\limits_{i=0}^{k-1}dp_{a-1,i}+dp_{b-1,k-1-i}\right)

Fn(x)k=0infxkdpn,kF_n(x)\sum\limits_{k=0}^{\inf}x^kdp_{n,k},那么:

Fn(x)=Fn1(x)+xFn1(x)+xFn2(x)F_n(x)=F_{n-1}(x)+xF_{n-1}(x)+xF_{n-2}(x)

Fa+b(x)=(FaFb)(x)+x(Fa1Fb1)(x)F_{a+b}(x)=(F_a*F_b)(x)+x(F_{a-1}*F_{b-1})(x)

那么:

Fn(x)=Fn1(x)+xFn1(x)+xFn2(x)F_n(x)=F_{n-1}(x)+xF_{n-1}(x)+xF_{n-2}(x)

F2n(x)=Fn2(x)+xFn12(x)F_{2n}(x)=F_n^2(x)+xF_{n-1}^2(x)

F2n1(x)=(FnFn1)(x)+x(Fn1Fn2)(x)F_{2n-1}(x)=(F_n*F_{n-1})(x)+x(F_{n-1}*F_{n-2})(x)

F2n2(x)=Fn12(x)+xFn22(x)F_{2n-2}(x)=F_{n-1}^2(x)+xF_{n-2}^2(x)