P1313 计算系数[二项式定理]
题目描述
给定一个多项式\((by+ax)^k\),请求出多项式展开后\(x^n \times y^m\)项的系数。
解析
一道水题,二项式定理搞定。注意递推组合数时对其取模。
参考代码
#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstring>
#include<ctime>
#include<cstdlib>
#include<algorithm>
#include<queue>
#include<set>
#include<map>
#define ll long long
#define N 1010
#define mod 10007
using namespace std;
ll C[N][N],a,b,n,m,k;
inline void init()
{
for(int i=1;i<=k;++i) C[i][i]=C[i][0]=1;
for(int i=1;i<=k;++i)
for(int j=i+1;j<=k;++j)
C[j][i]=(C[j-1][i]%mod+C[j-1][i-1]%mod)%mod;
}
inline ll qp(ll a,ll b,ll p)
{
ll ans=1;
for(;b;b>>=1){if(b&1) ans=(ans%p*a%p)%p;a=(a%p*a%p)%p;}
return ans;
}
int main()
{
scanf("%lld%lld%lld%lld%lld",&a,&b,&k,&n,&m);
init();
printf("%lld\n",(qp(a,n,mod)%mod*qp(b,m,mod)%mod*C[k][m]%mod)%mod);
return 0;
}