求组合数
作者:
L_566
,
2024-04-15 13:25:41
,
所有人可见
,
阅读 3
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N=100010,mod=1e9+7;
int fact[N],infact[N];
int qmi(int a,int k,int p)
{
int res=1;
while(k)
{
if(k&1) res=res*a%mod;
a=a*a%mod;
k>>=1;
}
return res;
}
signed main()
{
fact[0]=infact[0]=1;
int n;
cin>>n;
for(int i=1;i<N;i++)
{
fact[i]=fact[i-1]*i%mod;
infact[i]=infact[i-1]*qmi(i,mod-2,mod)%mod;
}
while(n--)
{
int a,b;
cin>>a>>b;
cout<<fact[a]*infact[b]%mod*infact[a-b]%mod<<endl;
}
return 0;
}