Noip 2011 计算系数 - 二项式定理

答案是 abCnk

#include 
#include 
#include 
using namespace std;
#define debug(x) cerr << #x << "=" << x << endl;
const int MAXK = 1000 + 10;
const int MOD = 10007;
int a,b,k,n,m,c[1010][1010],ans;
int fpower(int numa, int powe) {
    int tema = numa;
    numa = 1;
    while(powe) {
        if(powe & 1) {
            numa = (numa % MOD * tema % MOD)%MOD;
        }
        tema = (tema % MOD * tema % MOD) %  MOD;
        powe >>= 1;
    }
    return numa;
}
int main() {
    cin >> a >> b >> k >> n >> m;
    c[1][1] = 1;
    for(int i=1; i<=1001; i++) {
        c[i][i] = 1;
        c[i][1] = i;
    }
    for(int i=3; i<=1001; i++) {
        for(int j=2; j1][j-1] % MOD + c[i-1][j] % MOD) % MOD;
        }
    }
    a %= MOD;
    b %= MOD;
    a = fpower(a,n);
    b = fpower(b,m);
    ans = (a * b) % MOD;
    ans = (ans  * c[k][min(n,m)]) % MOD;
    cout << ans % MOD;
    return 0;
}

你可能感兴趣的:(NOIP,数学)