当前位置:网站首页>求组合数 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]);
}
}
原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈
边栏推荐
- Sword finger offer II 058: schedule
- 【LeetCode】Day94-重塑矩阵
- Filter the numbers and pick out even numbers from several numbers
- LeetCode 0107. Sequence traversal of binary tree II - another method
- Traversal of leetcode tree
- Record the process of configuring nccl and horovod in these two days (original)
- Quickly use Amazon memorydb and build your own redis memory database
- Niu Mei's math problems
- 开源存储这么香,为何我们还要坚持自研?
- [rust notes] 17 concurrent (Part 1)
猜你喜欢

高斯消元 AcWing 884. 高斯消元解异或线性方程组

MySQL advanced part 2: the use of indexes

Data visualization chart summary (I)
![Introduction to LVS [unfinished (semi-finished products)]](/img/72/d5a943a8d6d71823dcbd7f23dda35b.png)
Introduction to LVS [unfinished (semi-finished products)]

Simple selection sort of selection sort

LaMDA 不可能觉醒吗?

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

1.15 - input and output system

中国剩余定理 AcWing 204. 表达整数的奇怪方式

Leetcode array operation
随机推荐
【Rust 笔记】15-字符串与文本(上)
MySQL advanced part 2: SQL optimization
Spark中groupByKey() 和 reduceByKey() 和combineByKey()
对for(var i = 0;i < 5;i++) {setTimeout(() => console.log(i),1000)}的深入分析
SQL三种连接:内连接、外连接、交叉连接
高斯消元 AcWing 884. 高斯消元解异或线性方程组
927. Trisection simulation
QQ computer version cancels escape character input expression
11-gorm-v2-03-basic query
Leetcode-6110: number of incremental paths in the grid graph
LeetCode-54
Network security skills competition in Secondary Vocational Schools -- a tutorial article on middleware penetration testing in Guangxi regional competition
[rust notes] 16 input and output (Part 1)
1.15 - input and output system
A reason that is easy to be ignored when the printer is offline
The difference between CPU core and logical processor
【Rust 笔记】13-迭代器(下)
Leetcode array operation
CPU内核和逻辑处理器的区别
__ builtin_ Popcount() counts the number of 1s, which are commonly used in bit operations