当前位置:网站首页>求组合数 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));
}
}
原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈
边栏推荐
猜你喜欢
Operator priority, one catch, no doubt
数据可视化图表总结(二)
Leetcode-6111: spiral matrix IV
Sqlmap tutorial (1)
liunx启动redis
阿里新成员「瓴羊」正式亮相,由阿里副总裁朋新宇带队,集结多个核心部门技术团队
Erreur de connexion Navicat à la base de données Oracle Ora - 28547 ou Ora - 03135
Single chip computer engineering experience - layered idea
Matrixdb V4.5.0 was launched with a new mars2 storage engine!
中国剩余定理 AcWing 204. 表达整数的奇怪方式
随机推荐
Navicat连接Oracle数据库报错ORA-28547或ORA-03135
打印机脱机时一种容易被忽略的原因
New title of module a of "PanYun Cup" secondary vocational network security skills competition
MySQL advanced part 2: SQL optimization
Nested method, calculation attribute is not applicable, use methods
【Rust 笔记】14-集合(下)
1039 Course List for Student
What's wrong with this paragraph that doesn't work? (unresolved)
Record the process of configuring nccl and horovod in these two days (original)
4. Object mapping Mapster
【Rust 笔记】15-字符串与文本(下)
阿里巴巴成立企业数智服务公司“瓴羊”,聚焦企业数字化增长
Daily question 1189 Maximum number of "balloons"
MySQL advanced part 1: stored procedures and functions
高斯消元 AcWing 884. 高斯消元解异或线性方程组
SPI details
Appium automation test foundation - Summary of appium test environment construction
【LeetCode】Day95-有效的数独&矩阵置零
Leetcode heap correlation
Currently clicked button and current mouse coordinates in QT judgment interface