求 C(n,n+m)%p

C(m,n)%p=C(m%p,n%p)*C(m/p,n/p)

#include<cstdio>
#include<cstring>
#include<iostream>
#define N 4000010
using namespace std;
#define int long long
int jc[N],inv[N],p;
inline int ksm(int x,int y,int mod){
int ans=1;
while(y){
if(y&1)ans=(ans*x)%mod;
x=(x*x)%mod;
y>>=1;
}
return ans;
}
inline int C(int x,int y){
if(y>x)return 0;
return jc[x]*inv[x-y]%p*inv[y]%p;
}
int n,m;
inline void pre(){
jc[0]=1;for(int i=1;i<p;i++)jc[i]=(jc[i-1]*i)%p;
inv[p-1]=ksm(jc[p-1],p-2,p);
for(int i=p-2;i>=0;i--)inv[i]=inv[i+1]*(i+1)%p;
}
inline int lucas(int n,int m){
if(!m)return 1;
return C(n%p,m%p)*lucas(n/p,m/p)%p;
}
signed main(){
int T;
cin>>T;
while(T--){
cin>>n>>m>>p;
n=n+m;
pre();
cout<<lucas(n,m)<<endl;
}
}

最新文章

  1. AFNetWorking设置HTTPRequestHeaders的坑
  2. CF #374 (Div. 2) D. 贪心,优先队列或set
  3. OS X 添加环境变量
  4. Babelfish(二分查找,字符串的处理略有难度,用sscanf输入)
  5. vb6 枚举对象属性
  6. C# 把引用的dll嵌入到exe文件中
  7. tomcat内存溢出问题
  8. asp.net core 2.0 web api基于JWT自定义策略授权
  9. 201521123100 《Java程序设计》 第1周学习总结
  10. VMware Workstation Pro下载密钥
  11. logstash关于date时间处理的几种方式总结
  12. NN:神经网络实现识别手写的1~9的10个数字—Jason niu
  13. docker-compose初试及命令基础
  14. having 与where 的异同点
  15. Android getWindow().setFlags方法
  16. MySQL 高级查询操作
  17. html5实现刮刮卡效果
  18. DNS服务器的解析
  19. ros nodelet 使用
  20. css总结3:Flex 布局教程:Flex-demos(转)

热门文章

  1. 002.Kubernetes简单入门实例
  2. jQuery源码分析--为什么在参数列表中传入undefined
  3. Http帮助类(史上最详细帮助类)
  4. RabbitMQ 的高可用集群
  5. 并发编程-深入浅出AQS
  6. java编程思想第四版第十四章 类型信息习题
  7. thinkphp6.0 多应用模块下提示控制器不存在
  8. 0MQ是会阻塞的,不要字面上看到队列就等同非阻塞。
  9. Lab4\5:进程和线程
  10. ehcache监控