#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
typedef long long ll;
ll mod;
ll qpow(ll x,ll p)
{
ll ans=1;
while(p)
{
if(p&1)
ans=(ans%mod*x%mod)%mod;
x=(x%mod*x%mod)*mod;
p>>=1;
}
return ans;
}
ll C(ll n,ll m)
{
if(m>n)
return 0;
m=((m>n-m)?(n-m):m);
ll fz=1,fm=1;
for(ll i=0;i<m;i++)
{
fz=(fz*ll(n-i))%mod;
fm=(fm*ll(i+1))%mod;
}
return fz%mod*qpow(fm,mod-2)%mod;
}
ll Lucas(ll n,ll m)
{
if(n<mod&&m<mod)
return C(n,m)%mod;
return Lucas(n/mod,m/mod)*C(n%mod,m%mod)%mod;
}
int main()
{
ios::sync_with_stdio(false);
ll t;
cin>>t;
while(t--)
{
ll n,m;
cin>>n>>m>>mod;
cout<<Lucas(n+m,n)%mod<<endl;
}
return 0;
}
一直输出0.jpg
有没有大佬帮忙调一下QAQ