3390 - 计算系数

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

给定一个多项式 (ax+by)^k ,请求出多项式展开后 x^ny^m 项的系数。 

题目输入

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

题目输出

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

输入/输出样例

输入格式

1 1 3 1 2

输出格式

3

C++解答

//AUTHOR::STDAFX
//ALGORITHM::Math
 
#define Mod 10007L
 
#include <cstdio>
 
using namespace std;
 
typedef long long ll;
 
int a,b,k,n,m;
ll c[1010][1010];
 
ll fx(ll a,int b)
{
    ll ans=1;
    a%=Mod;
    while(b>0){
        if(b&1){
            ans=(ans*a)%Mod;
        }
        b>>=1;
        a=(a*a)%Mod;
    }
    return ans%Mod;
}
int main(){
    scanf("%d%d%d%d%d",&a,&b,&k,&n,&m);
    a%=Mod;b%=Mod;
    c[1][1]=c[1][2]=1;
    for(int i=2;i<=k;i++){
        c[i][1]=1;
        for(int j=2;j<=m+1;j++){
            c[i][j]=(c[i-1][j]+c[i-1][j-1])%Mod;
        }
    }
    c[k][m+1]*=fx(a,n);
    c[k][m+1]%=Mod;
    c[k][m+1]*=fx(b,m);
    c[k][m+1]%=Mod;
    printf("%d",c[k][m+1]);
    //fclose(stdin);
    //fclose(stdout);
    return 0;
}