#include<cstdio>
using namespace std;
#define ll long long
ll n,m,p,jc[100005],njc[100005];
inline ll C(int x,int y){
if(!x||!y)return 1;
if(x>y)return 0;
if(x<p&&y<p)return jc[y]*njc[x]*njc[y-x]%p;
else return C(x%p,y%p)*C(x/p,y/p)%p;
}
inline ll ksm(int a,int b){
if(b==1)return a;
ll t=ksm(a,b/2);
if(b&1)return t*t%p*a%p;
else return t*t%p;
}
int main(){
int t;
scanf("%d",&t);
while(t--){
scanf("%lld%lld%lld",&n,&m,&p);
jc[0]=jc[1]=njc[0]=njc[1]=1;
for(int i=2;i<=n+m;i++)jc[i]=jc[i-1]*i%p;
for(int i=2;i<=n+m;i++)njc[i]=ksm(jc[i],p-2);
printf("%lld\n",(C(n%p,(n+m)%p)*C(n/p,(n+m)/p)%p+p)%p);
}
}
【洛谷P3807】【模板】Lucas定理
最新推荐文章于 2021-09-16 17:09:51 发布