有一排 n 个球,定义一个组可以只包含一个球或者包含两个相邻的球。现在一个球只能分到一个组中,求从这些球中取出 k 组的方案数。
n≤109,k<215。
dpn,k=dpn−1,k+dpn−1,k−1+dpn−2,k−1
dpa+b,k=(i=0∑kdpa,idpb,k−i)+(i=0∑k−1dpa−1,i+dpb−1,k−1−i)
设 Fn(x)k=0∑infxkdpn,k,那么:
Fn(x)=Fn−1(x)+xFn−1(x)+xFn−2(x)
Fa+b(x)=(Fa∗Fb)(x)+x(Fa−1∗Fb−1)(x)
那么:
Fn(x)=Fn−1(x)+xFn−1(x)+xFn−2(x)
F2n(x)=Fn2(x)+xFn−12(x)
F2n−1(x)=(Fn∗Fn−1)(x)+x(Fn−1∗Fn−2)(x)
F2n−2(x)=Fn−12(x)+xFn−22(x)