ACM中的组合数学基础

组合数学是数学的一个重要分支,在ACM竞赛中占有极大的比重

组合数学主要研究:按某种约束条件组成的各种离散问题。

  1. 问题的解
  2. 解的存在性
  3. 计数问题与分类
  4. 能行性问题(构造算法)
  5. 最优化问题

计算:

C n m = n ! m ! × ( n m ) ! , A n m = n ! m !

C n m = C n 1 m + C n 1 m 1

C m m + C m + 1 m + . . . + C m + n m = C m + n + 1 m + 1

C n 0 + C n + 1 1 + . . . + C n + k k = C n + k + 1 k

C 2 n 2 = 2 C n 2 + n 2

情况:

n球m盒子: A n + m 1 n + m 1

  • 球相同:除以 A n n
  • 盒子相同:除以 A m 1 m 1

n个人站一排: A n n
n个人站一圈: A n n / n = A n 1 n 1

n男m女站一排(相当于n+m位置选n个): C n + m n
n男m女站一圈:不知道。。。

男生不能站在一起,插空法
男生必须站在一起,捆绑法

k个元素的无限集取r个的全排列: K r
k个元素的无限集取r个的组合数: C k + r 1 r
k个元素的无限集取r个且每个元素至少有一个的组合数: C r 1 k 1

错排公式: [ n ! / e + 0.5 ]

猜你喜欢

转载自blog.csdn.net/jk_chen_acmer/article/details/81976384