本题涉及到数论知识,见模板题 876. 快速幂求逆元
YLS的算法基础课中也有详细介绍
#include <iostream>
using namespace std;
const int mod = 10007;
int qmi(int a, int k) //快速幂模板
{
a %= mod;
int res = 1;
while (k)
{
if (k & 1) res = res * a % mod;
a = a * a % mod;
k >>= 1;
}
return res;
}
int main()
{
int a, b, k, n, m;
cin >> a >> b >> k >> n >> m;
int res = qmi(a, n) * qmi(b, m) % mod; //用快速幂求出(a^n * b^m) % mod 的结果
for (int i = 1, j = k; i <= n; i ++, j -- )
{
res = res * j % mod; //分子计算直接相乘即可
res = res * qmi(i, mod - 2) % mod; //分母要用快速幂求逆元
}
cout << res << endl;
return 0;
}