当前位置:网站首页>求组合数 AcWing 886. 求组合数 II
求组合数 AcWing 886. 求组合数 II
2022-07-27 10:35:00 【T_Y_F666】
求组合数 AcWing 886. 求组合数 II
原题链接
算法标签
组合数学 组合计数 逆元 快速幂 费马小定理
思路
由于(a / b) % p 不等于(a % p) / (b % p),所以直接除以相应的阶乘不行, 需要乘阶乘逆元
代码
#include<bits/stdc++.h>
#define int long long
#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 = 2005, mod = 1e9+7;
int f[N], fn[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;
}
void init(){
f[0]=fn[0]=1;
rep(i, 1, N){
f[i]=f[i-1]*i%mod;
// 求逆元
fn[i]=fn[i-1]*qmi(i, mod-2, mod)%mod;
}
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n=read();
init();
while(n--){
int a=read(), b=read();
printf("%lld\n", f[a]*fn[b]%mod*fn[a-b]%mod);
}
return 0;
}
原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈
边栏推荐
- Instructions for mock platform
- Yum source installation
- 计算重叠积分的第二种方法
- properties文件
- 图片中非0值的数量对分类的影响
- Ten year structure five year life-07 young and vigorous transformation
- 01 BTC cryptology principle
- Shortest moving distance and entropy of morphological complex
- Use of beautifulsoup
- The longest ascending subsequence model acwing 1017. The glider wing of the strange thief Kidd
猜你喜欢

Opengauss kernel analysis - statistics and row count estimation

Antd table+checkbox default value display

Instructions for mock platform

Cancer DDD

The influence of the number of non-zero values in the picture on Classification

荒野觅踪---寻找迭代次数

The open source project Taier version 1.1 was officially released, and the list of new functions is fast

最长上升子序列模型 AcWing 1012. 友好城市

Use of beautifulsoup

Knapsack model acwing 423. Picking herbs
随机推荐
Miscellaneous records of Finance
Study notes Minio
15 design movie rental system
博弈论 AcWing 892. 台阶-Nim游戏
发动机悬置系统冲击仿真-瞬时模态动态分析与响应谱分析
Derivation of the detailed expansion sto overlap integrals
properties文件
Cancer DDD
迭代次数和熵之间关系的一个验证试验
Opengauss kernel analysis - statistics and row count estimation
如何组装一个注册中心
中国剩余定理 AcWing 204. 表达整数的奇怪方式
12 is at least twice the maximum number of other numbers
ACM warm-up Exercise 2 in 2022 summer vacation (summary)
洛谷P1896 互不侵犯
Longest ascending subsequence model acwing 482. Chorus formation
Antd table+checkbox default value display
Shortest moving distance and entropy of morphological complex
49 letter ectopic grouping and 242 effective letter ectopic words
349 sum of intersection of two arrays and 01