题目背景

这是一道模板题。

题目描述

给定n,m,p(1\le n,m,p\le 10^51≤n,m,p≤105)

求 C_{n+m}^{m}\ mod\ pCn+mm​ mod p

保证P为prime

C表示组合数。

一个测试点内包含多组数据。

输入输出格式

输入格式:

第一行一个整数T(T\le 10T≤10),表示数据组数

第二行开始共T行,每行三个数n m p,意义如上

输出格式:

共T行,每行一个整数表示答案。

输入输出样例

输入样例#1: 复制

2
1 2 5
2 1 5
输出样例#1: 复制

3
3
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define MAXN 100000
using namespace std;
int T,p;
long long sum[MAXN];
long long pow(long long a,long long x,long long p){
long long s=%p;
for(;x;x>>=){
if(x&) s=s*a%p;
a=a*a%p;
}
return s;
}
long long C(long long n,long long m){
if(m>n) return ;
return sum[n]*pow(sum[m],p-,p)%p*pow(sum[n-m],p-,p)%p;
}
long long Lucas(long long n,long long m){
if(m==) return ;
return C(n%p,m%p)*Lucas(n/p,m/p)%p;
}
int main(){
scanf("%d",&T);
while(T--){
int n,m;
scanf("%d%d%d",&n,&m,&p);
sum[]=;
for(int i=;i<=p;i++) sum[i]=sum[i-]*i%p;
cout<<Lucas(n+m,n)<<endl;
}
}
 

最新文章

  1. Ruby 里的 %Q, %q, %W, %w, %x, %r, %s, %i (译)转
  2. AADC安装指南
  3. 【Java学习笔记】其他对象API
  4. String、StringBuffer与StringBuilder之间区别[全屏看文]
  5. Java学习-032-JavaWeb_001 -- Tomcat环境部署及基本配置
  6. php访问数据库思维导图
  7. [转]将Word转(保存)为带书签的PDF
  8. ok6410串口裸机总结
  9. 【BZOJ 1497】 [NOI2006]最大获利
  10. C++ 顶层 const
  11. vue.js路由参数简单实例讲解------简单易懂
  12. OBS源码解析(1)main函数
  13. gm8180:arm linux启动加载模块、运行程序
  14. mysql 索引学习--多条件等值查询,顺序不同也能应用联合索引啦
  15. Tomcat系列(6)——Tomcat处理一个HTTP请求的过程
  16. fastjson将json字符串转化成map的五种方法
  17. php session_start()
  18. 关于时间:UTC/GMT/xST/ xDT
  19. mybaits动态SQL中的DECIMAL
  20. docker微服务部署之:七、Rancher进行微服务扩容和缩容

热门文章

  1. java生成饼图svg
  2. Fire Air(华科校赛 网络赛)
  3. 事件绑定、取消的二种形式 &amp; call
  4. C++中vector用法
  5. vscode F12 不能用,原来是快捷键冲突了。
  6. COM(Component Object Model)接口定义
  7. 关于mysql服务突然运行不了的问题-“本地计算机上的mysql服务启动后停止,某些...”
  8. 环境变量HISTCONTROL命令及对快捷键Ctrl+o命令的影响
  9. DB2表空间
  10. JS应用之正则表达式