题目传送门sxazr
本题可用杨辉三角来做,也可以直接用组合数公式来求(要用费马小定理,时间快,空间占的少),我来说下杨辉三角的做法
先求出题目K次方的系数分f[k][i]
输出f[k][m]%MOD(注意是m)*a^n *b^m%MOD;
开long long 防炸也可不用
代码
#include <cstdio>
#include <iostream>
#define LL long long
using namespace std;
LL a,b,n,m,k,ans,f[1001][1001];
const LL MOD=1e4+7;
LL zr(LL x,LL y)
{
LL tmp=1;
while(y)
{
if(y%2) tmp=tmp*x%MOD;
x=x*x%MOD;
y/=2;
}
return tmp;
}
int main()
{
cin>>a>>b>>k>>n>>m;
f[1][0]=f[1][1]=1;
for(int i=2;i<=k;i++){
f[i][0]=1;
for(int j=1;j<=i;j++)
f[i][j]=(f[i-1][j]+f[i-1][j-1])%MOD;
}
cout<<f[k][m]%MOD*zr(a,n)%MOD*zr(b,m)%MOD;//防炸
return 0;
}