当前位置:网站首页>Find the combination number acwing 888 Find the combination number IV

Find the combination number acwing 888 Find the combination number IV

2022-07-05 06:24:00 T_ Y_ F666

Find the combination number AcWing 888. Find the combination number IV

Original link

AcWing 888. Find the combination number IV

Algorithm tags

Combinatorial mathematics Combination count High precision

Ideas

 Insert picture description here

··

Code

#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]);
    }
}

Originality is not easy.
Reprint please indicate the source
If it helps you Don't forget to praise and support
 Insert picture description here

原网站

版权声明
本文为[T_ Y_ F666]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/186/202207050616129048.html