1 条题解
-
0
solution
二项式定理:$$\begin{aligned} (x+y)^n=\sum_{i=0}^n C_n^i x^i y^{n-i} \end{aligned}$$。
所以 $$\begin{aligned} (ax+by)^k=\sum_{i=0}^k C_{k, i} (ax)^i (by)^{k-i} &= \sum_{i=0}^k C_{k, i} a^i b^{k-i} x^i y^{k-i}\end{aligned}$$。
有 ,求 的系数,令 且 ,其系数是 。
直接乘就行,不用快速幂。考虑 。
有 个数选 个数,求方案数 ,对于其中一个数考虑选不选。
- 若选这个数,则应在另外 个数中选 个数,方案数 。
- 若不选,则要在另外 个数中选 个数,方案数 。
由加法原理得到组合数递推公式:。
code
#include<bits/stdc++.h> using namespace std; typedef long long LL; const LL P=10007; LL fac[1010]; LL qpow(LL a,LL b) { LL ans=1%P;a%=P; for(;b;b>>=1,a=a*a%P)if(b&1)ans=ans*a%P; return ans; } LL C(LL n,LL m) { return fac[n]*qpow(fac[m],P-2)%P*qpow(fac[n-m],P-2)%P; } int main() { LL a,b,k,n,m;scanf("%lld%lld%lld%lld%lld",&a,&b,&k,&n,&m); fac[0]=1;for(int i=1;i<=k;i++) fac[i]=fac[i-1]*i%P; LL ans=qpow(a,n) *qpow(b,m) %P* C(n+m,m)%P; printf("%lld\n",ans); return 0; }
- 1
信息
- ID
- 412
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- 递交数
- 157
- 已通过
- 44
- 上传者