计算系数
k个式子相乘,把其中n个式子的x和m个式子的y选出来得到xn*ym项
Ckn*Ck-nm(n+m=k也就是1)
直接计算在取模后做除法需要乘法逆元,可以用杨辉三角求解
#include<bits/stdc++.h>
using namespace std;
int f[1010][1010];
int main()
{
int a,b,k,n,m,ans=1,sum=1,aa=1,bb=1;
cin>>a>>b>>k>>n>>m;
a%=10007,b%=10007;//a,b的取值范围是10^6^,直接平方会爆int
memset(f,0,sizeof(f));
f[1][1]=1;
for(int i=2;i<=1006;i++)
for(int j=1;j<=i;j++)
f[i][j]=(f[i-1][j]+f[i-1][j-1]+10007)%10007;
for(int i=1;i<=n;i++) aa=(a*aa+10007)%10007;
for(int i=1;i<=m;i++) bb=(b*bb+10007)%10007;
ans=(f[k+1][m+1]*aa+10007)%10007;//注意f数组的下标
ans=(ans*bb+10007)%10007;
cout<<ans;
return 0;
}