Link
Solve
根据二项式定理:
[(ax+by)^k=sum^k_{i=0}C^i_ka^ib^{k-i}x^iy^{k-i}
]
所以(x^ny^m)项的系数即为(C^n_ka^nb^m),用杨辉三角和乘法逆元就可以求出答案了。
Code
#include<cstdio>
using namespace std;
int zuhe[1005][1005];
int powf(int a,int b){
int ans=1,base=a;
while(b!=0){
if((b&1)!=0)
ans=ans*base%10007;
base=base*base%10007;
b>>=1;
}
return ans;
}
void pre(){
for(int i=0;i<=1000;i++){
zuhe[i][0]=1;
zuhe[i][i]=1;
}
for(int i=2;i<=1000;i++){
for(int j=1;j<=1000;j++){
zuhe[i][j]=(zuhe[i-1][j]+zuhe[i-1][j-1])%10007;
}
}
}
int main(){
pre();
int a,b,k,n,m;
scanf("%d%d%d%d%d",&a,&b,&k,&n,&m);
a=a%10007;
b=b%10007;
int ans=powf(a,n)%10007*powf(b,m)%10007*zuhe[k][n]%10007;
printf("%d",ans);
return 0;
}