目录

不可重复排列

可重复排列

求全排列函数(基本不用)

圆排列

不尽相异元素全排列

二项式定理

常见恒等式

组合分析法

​容斥原理

错排问题

递推推导

通项推导

斐波那契数列

性质

卡兰特数(重点)

例题


特别鸣谢徐哥的PPT和精彩讲解

不可重复排列

从n个物品中不可重复的取出m个物品

n:待排列数组的长度

cur:已经排列的元素个数

A[]:存储排列后的元素

vis[]:标记数组

当前元素选择完之后记得恢复变量

可重复排列

从n个物品中可重复的取出m个物品

last表示上一个选择,vis_P表示pick,当前元素挑选数量,vis_A表示当前元素挑选上限

求全排列函数(基本不用)

next_permutation和prev_permutation()

圆排列

循环排列(circular permutation)亦称圆排列、环排列等。是排列的一种,指从n个不同元素中取出m(1≤m≤n)个不同的元素排列成一个环形,既无头也无尾。两个循环排列相同当且仅当所取元素的个数相同并且元素取法一致,在环上的排列顺序一致。

这4种取法一致,排列顺序一直,只能算一种

不尽相异元素全排列

10步走完:10步一级台阶

9步走完:1步两级,8步一级  9!/(8!*1!)

……

6步走完:4步两级,2步一级 6!/(4!*2!)

5步走完:5步两级台阶

4,3,2,1无法完成

二项式定理

杨辉三角↑

常见恒等式

这个意思就是Cnk,n是下标k是上标,CSDN的公式栏我找不到……

高中的式子,套公式恒等

套公式恒等

 x=1带入即可

组合分析法

容斥原理

要计算几个集合并集的大小,我们要先将所有单个集合的大小计算出来,然后减去所有两个集合相交的部分,再加回所有三个集合相交的部分,再减去所有四个集合相交的部分,依此类推,一直计算到所有集合相交的部分。

例题

给定r,n求[1,r]内与n互素的个数有多少个?

i<<tail是状态压缩,比如k的质因子有2,3,5,7,那么i左移4位,为10000,这4个0中每有1个变成1就代表着选中了一个质因子,比如10001为选中了2,11101选中了2,5,7,具体实现为(i>>j)&1

cnt是奇数相加,偶数相减,图片打错了

这个是容斥原理,你遇到2相加了,遇到3相加了,遇到2*3就应该减回来

错排问题

递推推导

当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用D(n)表示,那么D(n-1)就表示n-1个编号元素放在n-1个编号位置,各不对应的方法数,其它类推.

第一步,把第n个元素放在一个位置,比如位置k,一共有n-1种方法;

第二步,放编号为k的元素,这时有两种情况:

⑴把它放到位置n,那么,对于剩下的n-1个元素,由于第k个元素放到了位置n,剩下n-2个元素就有D(n-2)种方法;

⑵第k个元素不把它放到位置n,这时,对于这n-1个元素,有D(n-1)种方法;

综上得到 D(n) = (n-1) [D(n-2) + D(n-1)]

通项推导

正整数1, 2, 3, ……, n的全排列有 n! 种,其中第k位是k的排列有 (n-1)! 种;

当k分别取1, 2, 3, ……, n时,共有n*(n-1)!种排列是至少放对了一个的,由于所求的是错排的种数,所以应当减去这些排列; (这时n!-n!=0,排列被减完了)

但是此时把同时有两个数不错排的排列多排除了一次,应补上n!/2!  [(n-2)!*C(n,2)=n!/2!];

在补上时,把同时有三个数不错排的排列多补上了一次,应排除n!/3!; ……;

继续这一过程,得到错排的排列种数为

D(n) = n! - n!/1! + n!/2! - n!/3! + … + (-1)^n*n!/n! = ∑(k=2~n) (-1)^k * n! / k!

即D(n) = n! [1/0! - 1/1! + 1/2! - 1/3! + 1/4! + ... + (-1)^n/n!].

板子题https://acm.hdu.edu.cn/showproblem.php?pid=2048

斐波那契数列

性质

不用背

卡兰特数(重点)

https://www.luogu.com.cn/problem/P1044

例题

https://www.luogu.com.cn/problem/P1157(递归)

https://www.luogu.com.cn/problem/P7566(排列组合)

https://www.luogu.com.cn/problem/P3197(容斥)

https://www.luogu.com.cn/problem/P1641(卡兰特数)

https://www.luogu.com.cn/problem/P4071 (错排)

组合数学 排列 容斥 卡特兰数相关推荐

  1. HDU 6143 Killer Names(排列+容斥,dp)

    Killer Names HDU 6143 (容斥+排列组合,dp+整数快速幂) 2017ACM暑期多校联合训练 - Team 8 1011 Killer Names 题目链接 Time Limit: ...

  2. 组合排序题目汇总(排列组合、卡特兰数和递归思想)

    组合排序题目汇总 排列组合 矩阵走法 A必须在B左边站队 互不相邻站队 分糖果 球放入桶 吃糖 卡特兰数 括号匹配 进出栈顺序/售票顺序 二叉树不同的结构数 高矮排列 递归思想 信封装信 排列组合 矩 ...

  3. 《程序设计中的组合数学》——容斥定理

    在中学阶段的数学中,有诸如"一个班有7个语文满分,6个数学满分,5个英语满分--求满分的同学有多少个"的"多面手"问题,当时老师介绍的思路是画个图自己分配一下, ...

  4. Codeforces 1342E Placing Rooks(容斥+组合数学)

    题目链接:E. Placing Rooks 题意:给定一个N*棋盘,要求摆放n个rooks(国际象棋里能横竖走的那啥),使得每个格子都能被rooks攻击到,并且正好有k对rooks能相互攻击到,求有多 ...

  5. 2017ACM暑期多校联合训练 - Team 8 1011 HDU 6143 Killer Names (容斥+排列组合,dp+整数快速幂)...

    题目链接 Problem Description Galen Marek, codenamed Starkiller, was a male Human apprentice of the Sith ...

  6. 集训队作业2018: 青春猪头少年不会梦到兔女郎学姐(多限制容斥)(生成函数)(组合数学)

    题意 给定 nnn 种颜色的球,第 iii 种颜色的球数量为 aia_iai​ 个,一种排列的贡献可以如下计算:先把这个序列首尾相连,然后把所有相邻且颜色相同的段拿出来,贡献为他们的长度之积,求所有排 ...

  7. 【笔记】郑州大学ACM实验室寒假新生培训之 排列组合与容斥

    >>b站视频链接<< 目录: OP 组合数和排列数 组合数与杨辉三角 Lucas定理 容斥原理 错位排序 m球n盒问题 多重集的r-组合数 ED OP \ 组合数和排列数 对于 ...

  8. 七选五 排列组合+容斥/错排

    好题,或许是因为我太菜了 题面 分析 法一:容斥 不难想到用排列组合,问题就转化为:从 k k k 个空中选 x x x 个空,使它们全部填匹配的数字,而剩下的 k − x k-x k−x 个空全都不 ...

  9. 【COGS】2287:[HZOI 2015]疯狂的机器人 FFT+卡特兰数+排列组合

    [题意][COGS 2287][HZOI 2015]疯狂的机器人 [算法]FFT+卡特兰数+排列组合 [题解]先考虑一维的情况,支持+1和-1,前缀和不能为负数,就是卡特兰数的形式. 设C(n)表示第 ...

  10. loj#2542 [PKUWC2018]随机游走 (概率期望、组合数学、子集和变换、Min-Max容斥)

    loj#2542 [PKUWC2018]随机游走 (概率期望.组合数学.子集和变换.Min-Max容斥) 很好很有趣很神仙的题! 题目链接: https://loj.ac/problem/2542 题 ...

最新文章

  1. python编的俄罗斯方块游戏下载_python写的俄罗斯方块游戏
  2. ERP成功全球实施十大成功案例
  3. Druid.io索引过程分析——时间窗,列存储,LSM树,充分利用内存,concise压缩
  4. 迷你DVD管理器项目
  5. php远程下载头像,远程使用gravatar头像
  6. 电路常识性概念(8)-MOS管及简单CMOS逻辑门电路原理图
  7. MYSQL高可用-Percona XtraDB Cluster
  8. Nginx_查看并发连接数
  9. C++混淆点-构造函数参数
  10. 平面设计师进步素材模板,设计基础!
  11. 查看tomcat管理信息
  12. android 图片按钮变形,android wrap_content引起的图片变形
  13. 迫不及待,英特尔推特“官宣”GPU发布时间
  14. 怎么用python实现序列比对_生信学习笔记——Python+Mafft实现批量化多序列比对
  15. 带孔的打印纸怎么设置_带孔电脑打印纸规格尺寸的相关知识及应用范围
  16. Qt获取IE地址栏内容
  17. 天玑810处理器怎么样 天玑810相当于什么水平
  18. D3D9 简单图形的绘制以及显示
  19. netlink使用简介
  20. 微信小程序 Array对象操作

热门文章

  1. java-老鼠出迷宫
  2. 【Pixel刷机】记录一次Pixel 2 刷机, root
  3. 留个底 人人乐旁靓房房东出租,我是房东
  4. 微信小程序 - 扫描小程序码进入小程序并获取参数
  5. python重命名列名_Pandas对列进行重命名
  6. 计算机网络之网络层-网络层拥塞控制
  7. 计算机分区硬盘有写保护,磁盘被写保护怎么解除的教程详解【图解】
  8. 找工作就来程序c#/.net开发求职招聘QQ群
  9. 字符串函数strtolower解析
  10. 固态和机械硬盘组raid_SSD+机械硬盘Raid 0成最佳搭配?_浦科特 PX-M5Pro_固态硬盘评测-中关村在线...