当前位置:网站首页>求组合数 AcWing 887. 求组合数 III
求组合数 AcWing 887. 求组合数 III
2022-07-05 06:16:00 【T_Y_F666】
求组合数 AcWing 887. 求组合数 III
原题链接
算法标签
组合数学 组合计数 Lucas定理 逆元 快速幂 费马小定理
思路

代码
#include<bits/stdc++.h>
#define int long long
#define abs fabs
#define rep(i, a, b) for(int i=a;i<b;++i)
#define Rep(i, a, b) for(int i=a;i>=b;--i)
using namespace std;
const int N = 105;
double a[N][N], eps = 1e-8;
int n;
inline int read(){
int s=0,w=1;
char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
return s*w;
}
void put(int x) {
if(x<0) putchar('-'),x=-x;
if(x>=10) put(x/10);
putchar(x%10^48);
}
int qmi(int a, int b, int p){
int ans=1;
while(b){
if(b&1){
ans=ans*a%p;
}
a=a*a%p;
b>>=1;
}
return ans;
}
int C(int a, int b, int p){
if(a<b){
return 0;
}else{
int res=1;
// for循环只执行了b次,所以是从a开始乘了b个数,即a*(a-1)*…*(a-b+1),也就等于a!/(a-b)!
for(int i=1, j=a; i<=b; ++i, --j){
res=res*j%p;
res=res*qmi(i, p-2, p)%p;
}
return res;
}
}
int lu(int a, int b, int p){
if(a<p&&b<p){
return C(a, b, p);
}else{
return C(a%p, b%p, p)*lu(a/p, b/p, p)%p;
}
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
n=read();
while(n--){
int a=read(), b=read(), p=read();
printf("%lld\n", lu(a, b, p));
}
}
原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈
边栏推荐
- 博弈论 AcWing 894. 拆分-Nim游戏
- MIT-6874-Deep Learning in the Life Sciences Week 7
- 阿里新成员「瓴羊」正式亮相,由阿里副总裁朋新宇带队,集结多个核心部门技术团队
- Leetcode-1200: minimum absolute difference
- 2021apmcm post game Summary - edge detection
- Appium foundation - use the first demo of appium
- 快速使用Amazon MemoryDB并构建你专属的Redis内存数据库
- 开源存储这么香,为何我们还要坚持自研?
- What's wrong with this paragraph that doesn't work? (unresolved)
- Arduino 控制的 RGB LED 无限镜
猜你喜欢

WordPress switches the page, and the domain name changes back to the IP address

Traditional databases are gradually "difficult to adapt", and cloud native databases stand out

LeetCode-54

liunx启动redis

redis发布订阅命令行实现

【LeetCode】Easy | 20. Valid parentheses

中国剩余定理 AcWing 204. 表达整数的奇怪方式

QQ电脑版取消转义符输入表情

NotImplementedError: Cannot convert a symbolic Tensor (yolo_boxes_0/meshgrid/Size_1:0) to a numpy ar

MySQL怎么运行的系列(八)14张图说明白MySQL事务原子性和undo日志原理
随机推荐
MySQL advanced part 2: the use of indexes
Is it impossible for lamda to wake up?
What's wrong with this paragraph that doesn't work? (unresolved)
中国剩余定理 AcWing 204. 表达整数的奇怪方式
Leetcode-22: bracket generation
Leetcode-1200: minimum absolute difference
LeetCode-54
1040 Longest Symmetric String
【Rust 笔记】14-集合(下)
A reason that is easy to be ignored when the printer is offline
leetcode-31:下一个排列
Leetcode-3: Longest substring without repeated characters
Overview of variable resistors - structure, operation and different applications
Regulations for network security events of vocational group in 2022 Guizhou Vocational College skill competition
Groupbykey() and reducebykey() and combinebykey() in spark
数据可视化图表总结(二)
博弈论 AcWing 891. Nim游戏
MySQL怎么运行的系列(八)14张图说明白MySQL事务原子性和undo日志原理
容斥原理 AcWing 890. 能被整除的数
可变电阻器概述——结构、工作和不同应用