题目

给定一个多项式 ,请求出多项式展开后 项的系数。

解题思路

由二项式定理,得
所以, 项的系数为

函数 power(x,n) 返回 ,并对 mod 取模。

函数 C(x,y) 返回 ,并对 mod 取模。

C++代码

#include<iostream>
using namespace std;

const int mod = 10007;

long long power(int x, int n){
    x %= mod;
    if(x==1)
        return 1;
    if(n==0)
        return 1;
    long long a = power(x, n/2);
    if(n%2==0)
        return a*a%mod;
    else
        return a*a*x%mod;
}

long long C(int x, int y){
    int f[1001][1001] = {0};
    f[0][0] = 1;
    for(int i=1; i<=x; ++i){
        f[i][0] = 1;
        for(int j=1; j<=y && j<=x; ++j){
            f[i][j] = f[i-1][j-1] + f[i-1][j];
            f[i][j] %= mod;
        }
    }
    return f[x][y];
}

int main(){
    int a, b, k, n, m;
    cin >> a >> b >> k >> n >> m;
    long long ans = power(a,n) * power(b,m) * C(k,n);
    ans %= mod;
    cout << ans << endl;
    return 0;
}