#include<bits/stdc++.h>
#pragma GCC optimize(1)
#pragma GCC optimize(2)
#pragma GCC optimize(3,"Ofast","inline")
long long N,M,p;
using namespace std;
long long KSM(long long a,long long b,long long p) {
long long ans=1;
while(b) {
if(b&1)ans=(ans*a)%p;
a=(a*a)%p;
b/=2;
}
return ans;
}
long long C(long long a,long long b) {
if(a<b)return 0;
if(a==b)return 1;
if(b>a-b)b=a-b;
long long A=1,B=1;
for(long long i=0; i<b; ++i) {
A=(A*(a-i))%p;
B=(B*(b-i))%p;
}
return (A*KSM(B,p-2,p));
}
long long Lucas(long long n,long long m) {
if(m==0)return 1;
return C(n%p,m%p)*Lucas(n/p,m/p)%p;
}
int main() {
cin>>N>>M>>p;
cout<<Lucas(N+M,M);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!