用杨辉三角算系数C(k,n),因为数字很大,即使是long long也会超,所以边乘边求余
#include<iostream>#include<string.h>using namespace std;#define N 10007int s[1005][1005];int fun(int a,int n){ int i,t; a=a%N; t=a; for(i=0;i<n-1;i++) a=(t*a)%N; return a;}int main(){ int a,b,k,n,m; cin>>a>>b>>k>>n>>m; int i,j; s[1][0]=1; s[1][1]=1; for(i=2; i<=k; i++) { s[i][0]=1; for(j=1; j<=i-1; j++) s[i][j]=(s[i-1][j-1]+s[i-1][j])%N; s[i][i]=1; } int ans; ans=(fun(a,n)*fun(b,m))%N; ans=(ans*s[k][n])%N; cout<<ans<<endl; return 0;}