当前位置:网站首页>求组合数 AcWing 886. 求组合数 II
求组合数 AcWing 886. 求组合数 II
2022-07-03 08:41: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;
}
原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈
边栏推荐
猜你喜欢
Query XML documents with XPath
PHP uses foreach to get a value in a two-dimensional associative array (with instances)
Phpstudy 80 port occupied W10 system
Introduction to Base64 coding
MySQL three logs
Monotonic stack -42 Connect rainwater
Life cycle of Servlet
Redux - learning notes
Chocolate installation
[redis] redis persistent RDB vs AOF (source code)
随机推荐
Collection interface
Osganimation library parsing
了解小程序的笔记 2022/7/3
Unity editor expansion - window, sub window, menu, right-click menu (context menu)
Drawing maze EasyX library with recursive backtracking method
Graphics_ Learnopongl learning notes
单调栈-42. 接雨水
【Rust 笔记】08-枚举与模式
Unity Editor Extension - drag and drop
First Servlet
Osgconv tool usage
Osgearth topographic shading map drawing
Query XML documents with XPath
Solution of 300ms delay of mobile phone
Final review of Database Principles
Alibaba canal actual combat
100 GIS practical application cases (78) - Multi compliance database design and data warehousing
注解简化配置与启动时加载
[rust notes] 07 structure
【Rust 笔记】10-操作符重载