组合数模板一

const int N=2010;
const int mod=1e9+7;
int C[N][N],t,a,b;//C[i][j]  从i里面选j个
void init()
{for(int i=0;i<N;i++){for(int j=0;j<=i;j++){if(j==0) C[i][j]=1;else C[i][j]=(C[i-1][j-1]+C[i-1][j])%mod;}}
}

组合数模板二

typedef long long int LL;
const int N=1e6+10;
const int mod=1e9+7;
LL f[N],inf[N],n;
LL quick_mi(LL a,LL b,LL p)
{LL sum=1;while(b){if(b&1) sum=sum*a%p;b>>=1;a=a*a%p;}return sum%p;
}
void init()
{f[0]=1,inf[0]=1;for(int i=1;i<N;i++){f[i]=f[i-1]*i%mod;inf[i]=inf[i-1]*quick_mi(i,mod-2,mod)%mod;}
}
LL query(LL a,LL b)//从a里面选b个
{return f[a]*inf[a-b]%mod*inf[b]%mod;
}

组合数模板三
0<=b<=a<=1e18

typedef long long int LL;
LL qmi(LL a,LL b, LL p)
{LL res=1;while(b){if(b&1) res=res*a%p;a=a*a%p;b=b>>1;}return res;
}
LL C(LL a, LL b, LL p)
{if(b > a) return 0;if(b > a - b) b = a - b;LL x = 1, y = 1;for(int i = 0; i < b; i++){x = x * (a - i) % p;y = y * (i + 1) % p;}return x * qmi(y, p - 2, p) % p;
}
LL lucas(LL a,LL b,LL p)
{if(a<p&&b<p) return C(a,b,p);return C(a%p,b%p,p)*lucas(a/p,b/p,p)%p;
}

组合数模板四
高精度

#include<bits/stdc++.h>
using namespace std;
const int N=5010;
int sum[N],prime[N],a,b,cnt;
bool st[N];
void init(int n)//打印质数表
{for(int i=2;i<=n;i++){if(!st[i]) prime[cnt++]=i;for(int j=0;prime[j]<=n/i;j++){st[prime[j]*i]=true;if(i%prime[j]==0) break;}}
}
int get(int n,int p)//求每个质数出现的次数
{int res=0;while(n) res+=n/p,n=n/p;return res;
}
vector<int> mul(vector<int> A,int b)
{vector<int> C;int t=0;for(int i=0;i<A.size()||t;i++){if(i<A.size()) t+=A[i]*b;C.push_back(t%10);t/=10;}while(C.size()>1&&C.back()==0) C.pop_back();return C;
}
vector<int> ans;
int main(void)
{cin>>a>>b;init(a);ans.push_back(1);for(int i=0;i<cnt;i++) sum[i]=get(a,prime[i])-get(a-b,prime[i])-get(b,prime[i]);for(int i=0;i<cnt;i++) {for(int j=0;j<sum[i];j++) ans=mul(ans,prime[i]);}for(int i=ans.size()-1;i>=0;i--) cout<<ans[i];return 0;
}

卡特兰数

typedef long long int LL;
LL f[25],n;
LL get(int n)
{f[0]=1;for(int i=1; i<=n;i++) f[i]=f[i-1]*(4*i-2)/(i+1);return f[n];
}

885. 求组合数 I
886. 求组合数 II
887. 求组合数 III
888. 求组合数 IV

ACM入门之【组合数】相关推荐

  1. C语言oj学生成绩输入和输出,『ACM入门』蓝桥杯ACM训练系统基本输入输出教程

    在介绍训练场的OJ系统之前,首先为大家介绍一下ACM: ACM原代表美国计算机协会,因其举办的ICPC即国际大学生程序设计竞赛而闻名全世界,此项赛事要求学生的在五小时内解决全英文问题,并在效率和速度以 ...

  2. c语言记忆化搜索,HNUSTC语言基础简单数据结构acm入门第一讲搜索.ppt

    C语言基础,简单数据结构,ACM入门讲座搜索部分 Bjut:mark063 2010.10.30 1 Evaluation only. Created with Aspose.Slides for . ...

  3. ACM入门之【搜索】

    搜索在ACM中是很重要的. 搜索一般分为DFS和BFS两大类,下面又划分很多的小类. 入门习题: 842. 排列数字 843. n-皇后问题 844. 走迷宫 845. 八数码

  4. ACM入门之【读入、输出优化】

    本文主要是基于oiwiki的做的总结,未来也会做一系列的相关文章.如果想继续看的话可以关注专栏. 做这个专栏的目的是因为自己最近开始系统的再打一下基础.于是想写一个专栏便于喜爱ACM的初学者入门. 目 ...

  5. ACM入门及STL简介(转)

    第一章 新手入门 1.      ACM国际大学生程序设计竞赛简介 1)      背景与历史 1970年在美国TexasA&M大学举办了首次区域竞赛,从而拉开了国际大学生程序设计竞赛的序幕. ...

  6. 大牛对ACM入门菜鸟的一些话

    http://www.cnblogs.com/yefengCrazy/p/5636677.html 首先就是我为什么要写这么一篇日志.原因很简单,就是因为前几天有个想起步做ACM人很诚恳的问我该如何入 ...

  7. 【转载】ACM入门 .

    初期: 一.基本算法:      (1)枚举. (poj1753,poj2965)      (2)贪心(poj1328,poj2109,poj2586)      (3)递归和分治法.      ( ...

  8. ACM入门指南[转]

    前言: 这篇指南不对ACM/ICPC国际大学生程序设计竞赛进行介绍,计算机学子如果不了解的可以在百度上进行搜索查询,这里介绍的只是一个计算机学生想要在ACM/ICPC里进行发展的初学者.内容比较简单通 ...

  9. ACM入门练习与递推小结

    一些实用的套路需要了然于心. 查表法实例(点击进入->ACM查表): 1.HDU2004 成绩转换 2.I00030 Grades conversion 3.HDU1048 The Hardes ...

最新文章

  1. 图解 | 当我们在读写 Socket 时,我们究竟在读写什么?
  2. visual studio C语言指针提示:使用未初始化的内存xx
  3. 登录服务器修改数据库吗,如何修改服务器登录数据库 sa
  4. Windows+Nginx+Tomcat搭建负载均衡和集群环境同时实现session共享(一)
  5. python二级考试程序题批改_随机生成百以内加减乘除题目并批改
  6. 骂人的代码_楚河骚话不断粉丝求代码 罕见喷脏怒怼弹幕
  7. 解决HuggingFace加载预训练模型时报错TypeError: expected str, bytes or os.PathLike object, not NoneType
  8. 正则表达式里的?:是啥意思例如(?:a|b)
  9. Torch7框架学习资料整理
  10. Java并发编程之ReentrantReadWriteLock详解
  11. 解决JDK官网下载龟速的问题
  12. 计算机软考数据库怎么学,计算机软考数据库系统工程师学习笔记(二)
  13. IEEE1588v2解析(2)--PTP协议概述
  14. 单价数量和总价的公式_单价、数量和总价之间的关系
  15. codeforces1146G Zoning Restrictions
  16. DAP数据分析平台可视化组件开发
  17. 北斗通讯协议4.0 java_北斗4.0协议解析.doc
  18. sql 求和并且将求和条件作为查询条件
  19. 基于AT89S52单片机的蘑菇大棚环境监测系统论文(附录代码)
  20. ie6 兼容整理《一》

热门文章

  1. Hyperopt中文文档:FMin
  2. .net core 监听性能,异常
  3. MATLAB在数学建模中的应用(三)
  4. 状态压缩 HDU 1565
  5. 领域设计基本理论知识总结(转)
  6. dingo php,用laravel dingo/api创建简单的api
  7. 初等数论--整除--线性组合与最大公因数之间的关系
  8. python网络编程—TCP协议(一)
  9. optee3.12.0 qemu_v8的环境搭建篇(ubuntu20.04)
  10. [crypto]-30-The Armv8 Cryptographic Extension在linux中的应用