#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
typedef long long ll;
const ll mod=1e9+7;
ll n,m;
ll quick_mod(ll a,ll b){
ll ans=1;
a%=mod;
while(b){
if(b&1){
ans=ans*a%mod;
b--;
}
b>>=1;
a=a*a%mod;
}
return ans;
}
ll C(ll n,ll m){
if(m>n)return 0;
ll ans=1;
for(int i=1;i<=m;i++){
ll a=(n+i-m)%mod;
ll b=i%mod;
ans=ans*(a*quick_mod(b,mod-2)%mod)%mod;
}
return ans;
}
ll lucas(ll n,ll m){
if(m==0) return 1;
return C(n%mod,m%mod)*lucas(n/mod,m/mod)%mod;
}
int main(){
scanf("%lld%lld",&n,&m);
printf("%lld\n",lucas(n,m));
return 0;
return 0;
}
Cnm%mod
最新推荐文章于 2020-06-19 20:59:38 发布