1. 程式人生 > 其它 >2021“MINIEYE杯”中國大學生演算法設計超級聯賽(7) 1004 Link with Balls

2021“MINIEYE杯”中國大學生演算法設計超級聯賽(7) 1004 Link with Balls

生成函式

題意:給你n對桶,第i對能分別提供出來0,1,2,...,i-1個球以及0,i,2i,3i,...個球,問湊m個球的方案數

第i對的生成函式為

\[\rm (1+x+x^2+...+x^i)(1+x^i+x^{2i}+...) \]

等比數列求和有

\[\dfrac{x^{i+1}-1}{x-1}\times \dfrac{1}{1-x^i} \]

考慮生成函式的實際意義,把n個生成函式乘起來,答案就是\(x^m\)的係數

\[\prod\limits_{i=2}^{n+1}\dfrac{x^i-1}{x-1}\prod\limits_{i=1}^{n}{\dfrac{1}{1-x^i}} \]

抽出來前面的n+1項和後面的第1項,有

\[\dfrac{x^{n+1}-1}{x-1}\times \dfrac{1}{x-1}(-1)^n\prod\limits_{i=2}^{n}\dfrac{x^i-1}{x-1}\dfrac{1}{x^i-1} \]

後面都被幹掉了,把下面的1+1+(n-1)個(x-1)合併起來有

\[(-1)^n\dfrac{x^{n+1}-1}{(x-1)^{n+1}} \]

把分母用廣義二項式定理展開有

\[(-1)^n(x^{n+1}-1)\sum\limits_{k=0}^\infty \mathbf{C}_{-(n+1)}^{k}(-1)^kx^k(-1)^{-(n+1)-k} \]

對組合數做負指標變換

\[(-1)^n(x^{n+1}-1)\sum\limits_{k=0}^\infty \mathbf{C}_{k+(n+1)-1}^{k}(-1)^kx^k(-1)^{-(n+1)-k} \]

合併一下(-1)的指數,發現能提出來,和前面的合併

\[(1-x^{n+1})\sum\limits_{k=0}^\infty \mathbf{C}_{k+n}^kx^k \]

至此可以做了,我們要找\(x^m\)的係數

首先令k=m,得到\(\mathbf{C}_{m+n}^m\)

然後令k=m-(n+1),得到\(-\mathbf{C}_{m-1}^{m-(n+1)}\),也即\(-\mathbf{C}_{m-1}^{n}\)

注意前面有個負號

最終答案為\(\mathbf{C}_{m+n}^m - \mathbf{C}_{m-1}^n\)

未經許可,禁止搬運。