2020省选A卷 组合数问题

探讨了在特定条件下利用杨辉三角进行多项式计算的方法,通过枚举和记忆化搜索优化复杂度。


∑k=0nf(k)xk(nk) \sum_{k=0}^{n} f(k) x^{k} \binom{n}{k} k=0nf(k)xk(kn)

 n≤1000\ n \le 1000 n1000 m≤1000\ m \le 1000 m1000

求杨辉三角,枚举即可。

 m=0\ m=0 m=0

根据二项式定理,即

a0∑k=0nxk(nk)=a0(x+1)n a_{0}\sum_{k=0}^{n} x^{k} \binom{n}{k}=a_{0}(x+1)^{n} a0k=0nxk(kn)=a0(x+1)n

 m≤5\ m \le 5 m5

我们只需要对 y,y∈[0,m]\ y,y \in [0,m] y,y[0,m]求出
∑k=0nkyxk(nk) \sum_{k=0}^{n}k^{y} x^{k} \binom{n}{k} k=0nkyxk(kn)
我们设:
g(n,y,t)=∑k=0n(k+t)yxk(nk) g(n,y,t)=\sum_{k=0}^{n} (k+t)^{y} x^{k} \binom{n}{k} g(n,y,t)=k=0n(k+t)yxk(kn)
显然:

g(n,y,t)=∑k=0n(k+t)yxk(nk)=∑k=0k⋅(k+t)y−1xk(nk)+t∑k=0n(k+t)(y−1)(nk)=n∑k=1n(k+t)y−1xk(n−1k−1)+t⋅g(n,y−1,t)=nx∑k=0n−1(k+1+t)y−1(n−1k)+t⋅g(n,y−1,t)=nx⋅g(n−1,y−1,t+1)+t⋅g(n,y−1,t) \begin{array}{rcl} g(n,y,t) & = & \sum_{k=0}^{n} (k+t)^{y} x^{k} \binom{n}{k}\\ & = & \sum_{k=0} k \cdot (k+t)^{y-1} x^{k} \binom{n}{k} + t\sum_{k=0}^{n}(k+t)^{(y-1)}\binom{n}{k} \\ & = & n \sum_{k=1}^{n} (k+t)^{y-1} x^{k} \binom{n-1}{k-1} + t \cdot g(n,y-1,t) \\ & = & n x \sum_{k=0}^{n-1}(k+1+t)^{y-1} \binom{n-1}{k} +t \cdot g(n,y-1,t) \\ & = & n x \cdot g(n-1,y-1,t+1) + t \cdot g(n,y-1,t) \end{array} g(n,y,t)=====k=0n(k+t)yxk(kn)k=0k(k+t)y1xk(kn)+tk=0n(k+t)(y1)(kn)nk=1n(k+t)y1xk(k1n1)+tg(n,y1,t)nxk=0n1(k+1+t)y1(kn1)+tg(n,y1,t)nxg(n1,y1,t+1)+tg(n,y1,t)
 y=0\ y=0 y=0时:
g(n,y,t)=(x+1)n g(n,y,t)=(x+1)^{n} g(n,y,t)=(x+1)n

爆搜即可。复杂度 O(2m+1)\ O(2^{m+1}) O(2m+1)

 m≤1000\ m \le 1000 m1000

容易发现状态只有 m(m+1)2\ \frac{m(m+1)}{2} 2m(m+1)个,记忆化即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值