求组合数-预处理阶乘,模数为质数
计算系数
https://ac.nowcoder.com/acm/contest/1026/A
的每一项咱们提取出来的 的系数应该是
组合数用阶乘预处理可得,复杂度为 。 指数用费马小定理快速幂求逆元,复杂度为
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
const int N=1000005,Mod=10007;
ll FACT[N];
ll power(ll a,ll b){
ll r=1;
while(b){
if((b&1)) r=r*a%Mod;
a=(ll)a*a%Mod;
b>>=1;
}
return r;
}
ll verse(ll a){
return power(a,Mod-2);
}
int main(){
ll a,b,k,n,m;
cin>>a>>b>>k>>n>>m;ll ans=1;
FACT[0]=1;
for(int i=1;i<=k;++i)
FACT[i]=FACT[i-1]*i%Mod;
ans*=FACT[k]*verse(FACT[n]);
ans%=Mod;
ans*=verse(FACT[k-n]);
ans%=Mod;
ans*=power(a,n);
ans%=Mod;
ans*=power(b,m);
ans%=Mod;
cout<<ans<<endl;
}