当前位置: 代码迷 >> 综合 >> 【NOIP2011】洛谷1313 计算系数
  详细解决方案

【NOIP2011】洛谷1313 计算系数

热度:20   发布时间:2024-01-13 11:41:04.0

题目描述

给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数。 输入输出格式 输入格式:

输入文件名为factor.in。

共一行,包含5 个整数,分别为 a ,b ,k ,n ,m,每两个整数之间用一个空格隔开。

输出格式:

输出共1 行,包含一个整数,表示所求的系数,这个系数可能很大,输出对10007 取模后的结果。

根据二项式定理,(ax+by)^k = Σ(t=0..k) C(k,t) * (ax)^t * (by)^(k-t)
所以答案就是C(k,n) * a^n * b^m。

#include<cstdio>
#include<cstring>
#define LL long long
const int mod=10007;
int c[1010][1010];
int main()
{int i,j,k,m,n,p,q,x,y,z,a,b,ans;scanf("%d%d%d%d%d",&a,&b,&k,&n,&m);a%=mod;b%=mod;for (i=0;i<=k;i++)c[i][0]=1;for (i=1;i<=k;i++)for (j=1;j<=k;j++)c[i][j]=(c[i-1][j]+c[i-1][j-1])%mod;ans=c[k][n];for (i=1;i<=n;i++)ans=(ans*a)%mod;for (i=1;i<=m;i++)ans=(ans*b)%mod;printf("%d\n",ans);
}