全WA求助
查看原帖
全WA求助
948216
ZackofZHOU楼主2024/8/19 08:25

记录

#include<iostream>
using namespace std;
typedef long long ll;
ll n,m,p,jc[200010];
ll qp(ll a,ll b,ll p)
{
    a %= p;
	ll ans = 1;
	while(b > 0)
	{
		if(b & 1)
			ans = ans * a % p;
		a = a * a % p;
		b >>= 1;
	}
	return a;
}
ll C(ll n,ll m,ll p)
{
    if(m > n)
        return 0;
	return (jc[n] * qp(jc[m],p - 2,p) % p * (qp(jc[n - m],p - 2,p) % p)) % p;
}
ll Lucas(ll n,ll m,ll p)
{
	if(m == 0)
		return 1;
	return Lucas(n / p,m / p,p) * C(n % p,m % p,p) % p;
}
int main()
{
	int t;
	cin >> t;
	while(t--)
	{
	    cin >> n >> m >> p;
	    jc[0] = 1;
	    for(int i = 1;i <= p;i++)
	        jc[i] = (jc[i - 1] * i) % p;
	    cout << Lucas(n + m,n,p) << '\n';
	}
	return 0;
}
2024/8/19 08:25
加载中...