计蒜客习题:蒜头君的多项式


问题描述

蒜头君遇到一个难解的多项式 (px + qy)^k,现在蒜头君知道了参数 p,q,k,他想知道把多项式展开后,其中 x^a y^b这一项的系数 s,蒜头君告诉你 a 和 b,想请聪明的你帮他计算一下 s%10007 的结果。
输入格式
输入一行,输入五个整数,每两个整数之间用一个空格隔开,分别为p,q,k,a,b(0≤k≤1000,0≤a,b≤k),保证 a+b=k。
输出格式
输出一行,输出一个整数,输出 s%10007 的结果。
样例输入
1 2 5 3 2
样例输出
40


AC代码

#include 
#include 
using namespace std;
int p,q,k,a,b,mod;
int C[1010][1010];
void pre() {
    for (int i = 0; i < 1010; ++i) {
        C[i][0] = 1;
        for (int j = 1; j <= i; ++j) {
            C[i][j] = (C[i - 1][j] + C[i - 1][j - 1]) % mod;
        }
    }
}

int main()
{
    mod=10007;
    pre();
    cin>>p>>q>>k>>a>>b;
    long long ans=C[k][a];
    for(int i=1;i<=a;i++)ans=(ans*(p%mod))%mod;
    for(int i=1;i<=b;i++)ans=(ans*(q%mod))%mod;
    cout<return 0;
 } 

你可能感兴趣的:(算法竞赛刷题,#,数论,计蒜客NOIP习题)