这题就是一道 二项式定理 加 快速幂
注意a和b一开始的处理要取模
#include <cstdio>
#include <algorithm>
#define MAXN 1010
#define mod 10007
using namespace std;
int a, b, k, n, m, ans;
int c[MAXN][MAXN];
int read() {
int f = 1, k = 0;
char c = getchar();
while(c < '0' || c > '9') {
if(c == '-') {
f = -1;
}
c = getchar();
}
while(c >= '0' && c <= '9') {
k = k * 10 + c - '0';
c = getchar();
}
return f * k;
}
int qpow(int x, int y) {
int ans = 1, tem = x;
while(y) {
if(y & 1) {
ans = ans * tem % mod;
}
y >>= 1;
tem = tem * tem % mod;
}
return ans;
}
int main() {
a = read(), b = read(), k = read(), n = read(), m = read();
a %= mod;
b %= mod;
a = qpow(a, n);
b = qpow(b, m);
int p = min(n, m);
for(int i = 1; i <= k; i ++) {
c[i][1] = i;
c[i][i] = 1;
}
for(int i = 1; i <= k; i ++) {
for(int j = 2; j <= min(i, p); j ++) {
c[i][j] = (c[i - 1][j - 1] + c[i - 1][j]) % mod;
}
}
ans = (a * b) % mod;
ans = (ans * c[k][p]) % mod;
printf("%d", ans);
return 0;
}