题意:给定一个多项式((ax+by)^k=sum_{i=0}^kC_k^ia^ib^{k-i}x^iy^{k-i}),请求出多项式展开后(x^n imes y^m)项的系数.
分析:由二项式定理((a+b)^k=sum_{i=0}^k C_n^ia^ib^{n-i})得((ax+by)^k=sum_{i=0}^kC_k^ia^ix^ib^{k-i}y^{k-i}),所以(x^ny^m)项的系数就是(C_k^na^nb^m),直接算组合数和快速幂就好了.
#include<bits/stdc++.h>
#define LL long long
using namespace std;
inline LL read(){
LL s=0,w=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){s=s*10+ch-'0';ch=getchar();}
return s*w;
}
const LL mod=10007;
LL jc[1005];
inline LL ksm(LL a,LL b){
LL cnt=1;
while(b){
if(b&1)cnt=(cnt*a)%mod;
a=(a*a)%mod;
b>>=1;
}
return cnt%mod;
}
inline LL C(LL n,LL m){
if(n<m)return 0;
return ((jc[n]*ksm(jc[m],mod-2))%mod*ksm(jc[n-m],mod-2))%mod;
}
int main(){
LL a=read(),b=read(),k=read(),n=read(),m=read();
jc[0]=1;for(int i=1;i<=k;i++)jc[i]=(jc[i-1]*i)%mod;
printf("%lld
",((ksm(a,n)*ksm(b,m))%mod*C(k,n))%mod);
return 0;
}