1. 程式人生 > >計算係數(利用楊輝三角和快速冪)

計算係數(利用楊輝三角和快速冪)

題目描述

給定一個多項式(by+ax)^k(by+ax)k,請求出多項式展開後x^n \times y^mxn×ym項的係數。

輸入輸出格式

輸入格式:

 

共一行,包含55個整數,分別為a ,b ,k ,n ,ma,b,k,n,m,每兩個整數之間用一個空格隔開。

 

輸出格式:

 

共1 行,包含一個整數,表示所求的係數,這個係數可能很大,輸出對1000710007 取模後的結果。

#include<bits/stdc++.h>
#define ll long long
#define INF 0x3f3f3f3f
using namespace std;

ll a,b,k,n,m,arr[1005][1005];

ll pow(ll x,ll y){
    ll ans=1,pas=x;
    while(y){
        if(y&1)
            ans=ans*pas%10007;
        pas=pas*pas%10007;
        y>>=1;
    }
    return ans%10007;
}

int main(){
    cin>>a>>b>>k>>n>>m;
    arr[0][1]=1;
    arr[0][2]=1;
    for(int i=1;i<k;i++){
        for(int j=1;j<=i+2;j++){
            arr[i][j]=(arr[i-1][j-1]+arr[i-1][j])%10007;
        }
    }
    ll ans = arr[k-1][m+1]*pow(b,m)%10007;
    ans = ans*pow(a,n)%10007;
    cout<<ans%10007;
    return 0;
}