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;
}
posted @ 2019-08-11 12:17  DarkValkyrie  阅读(181)  评论(0编辑  收藏  举报