当前位置:网站首页>求组合数 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]);
}
}
原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈
边栏推荐
猜你喜欢

LeetCode 0108. Convert an ordered array into a binary search tree - the median of the array is the root, and the left and right of the median are the left and right subtrees respectively

MIT-6874-Deep Learning in the Life Sciences Week 7

Data visualization chart summary (I)

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

Redis publish subscribe command line implementation

LeetCode 0107. Sequence traversal of binary tree II - another method

MySQL advanced part 2: SQL optimization

MySQL advanced part 2: optimizing SQL steps

快速使用Amazon MemoryDB并构建你专属的Redis内存数据库

MySQL advanced part 1: View
随机推荐
Leetcode-6109: number of people who know secrets
【Rust 笔记】16-输入与输出(上)
Appium foundation - use the first demo of appium
Operator priority, one catch, no doubt
中国剩余定理 AcWing 204. 表达整数的奇怪方式
[rust notes] 17 concurrent (Part 2)
New title of module a of "PanYun Cup" secondary vocational network security skills competition
Leetcode backtracking method
MySQL advanced part 2: optimizing SQL steps
[rust notes] 15 string and text (Part 1)
2021apmcm post game Summary - edge detection
【LeetCode】Day94-重塑矩阵
1.14 - assembly line
高斯消元 AcWing 884. 高斯消元解异或线性方程组
Doing SQL performance optimization is really eye-catching
NotImplementedError: Cannot convert a symbolic Tensor (yolo_boxes_0/meshgrid/Size_1:0) to a numpy ar
Leetcode-556: the next larger element III
Appium automation test foundation - Summary of appium test environment construction
leetcode-556:下一个更大元素 III
Chart. JS - Format Y axis - chart js - Formatting Y axis