求解答输出0
查看原帖
求解答输出0
553459
Css_orz楼主2025/7/27 22:12

组合数+逆元

在#1测试点中10个输出有7个正确,剩余3个都输出0

#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll n,m,p;
ll qp(ll a,ll b){
	int res=1;
	while (b){
		if (b%2)res=res*a%p;
		b/=2;
		a=a*a%p;
	}
	return res;
}
int main(){
	int t;
	cin>>t;
	while (t--){
		cin>>n>>m>>p;
		ll ans=1,k=1;
		for (ll i=n+m;i>=n+1;i--)ans=ans*i%p;//组合数
		for (ll i=m;i>=1;i--)k=k*i%p;
		cout<<ans*qp(k,p-2)%p<<"\n";//乘个逆元
	}
}
2025/7/27 22:12
加载中...