当前位置:网站首页>求组合数 AcWing 888. 求组合数 IV
求组合数 AcWing 888. 求组合数 IV
2022-07-05 06:16:00 【T_Y_F666】
求组合数 AcWing 888. 求组合数 IV
原题链接
算法标签
组合数学 组合计数 高精度
思路
代码
#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 = 5015;
int pr[N], st[N], s[N], cnt;
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);
}
void pri(int n){
rep(i, 2, n+1){
if(!st[i]){
pr[cnt++]=i;
}
for(int j=0; pr[j]<=n/i; ++j){
st[pr[j]*i]=true;
if(!(i%pr[j])){
break;
}
}
}
}
int get(int n, int p){
int res=0;
while(n){
res+=n/p;
n/=p;
}
return res;
}
vector<int> mul(vector<int> a, int b){
vector<int> c;
int t=0;
rep(i, 0, a.size()){
t+=a[i]*b;
c.push_back(t%10);
t/=10;
}
while(t){
c.push_back(t%10);
t/=10;
}
return c;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int a=read(), b=read();
pri(a);
rep(i, 0, cnt){
int p=pr[i];
s[i]=get(a, p)-get(a-b, p)-get(b, p);
}
vector<int> res;
res.push_back(1);
rep(i, 0, cnt){
rep(j, 0, s[i]){
res=mul(res, pr[i]);
}
}
Rep(i, res.size()-1, 0){
printf("%lld", res[i]);
}
}
原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈
边栏推荐
- SPI details
- MySQL advanced part 2: optimizing SQL steps
- Leetcode-6111: spiral matrix IV
- [leetcode] day95 effective Sudoku & matrix zeroing
- 【Rust 笔记】16-输入与输出(上)
- Groupbykey() and reducebykey() and combinebykey() in spark
- Leetcode-6110: number of incremental paths in the grid graph
- Leetcode-31: next spread
- Traversal of leetcode tree
- One question per day 1020 Number of enclaves
猜你喜欢
随机推荐
Quickly use Amazon memorydb and build your own redis memory database
How to understand the definition of sequence limit?
Golang uses context gracefully
【Rust 笔记】14-集合(上)
Leetcode divide and conquer / dichotomy
The difference between CPU core and logical processor
Single chip computer engineering experience - layered idea
MySQL advanced part 2: SQL optimization
Leetcode-6110: number of incremental paths in the grid graph
Leetcode array operation
Matrixdb V4.5.0 was launched with a new mars2 storage engine!
leetcode-31:下一个排列
MySQL advanced part 2: storage engine
Spark中groupByKey() 和 reduceByKey() 和combineByKey()
Traversal of leetcode tree
Leetcode backtracking method
1.15 - input and output system
MIT-6874-Deep Learning in the Life Sciences Week 7
做 SQL 性能优化真是让人干瞪眼
Open source storage is so popular, why do we insist on self-development?