挺无脑一题,根据二项式定理乱搞就好
#include<cstdio>
typedef long long ll;
ll a,b,n,k,m,jck=1,ans=1,jcn=1,jck_n=1;
const int mod=10007;
ll qpow(ll a,ll b)
{
ll ret=1;
for(;b;b>>=1)
{
if(b&1)ret=ret*a%mod;
a=a*a%mod;
}
return ret;
}
int main()
{
//freopen("in.txt","r",stdin);
scanf("%lld%lld%lld%lld%lld",&a,&b,&k,&n,&m);
for(int i=1;i<=k;i++)jck=(jck*i)%mod;
for(int i=1;i<=n;i++)jcn=(jcn*qpow(i,mod-2))%mod;
for(int i=1;i<=k-n;i++)jck_n=(jck_n*qpow(i,mod-2))%mod;
ans=(((((((((ans*jck)%mod)*jcn)%mod)*jck_n)%mod)*qpow(a,n))%mod)*qpow(b,m))%mod;
printf("%lld\n",ans);
return 0;
}
总结
考察二项式定理