NOIP--基本算法设计--组合数学
1. 概述:
组合数学又被称为离散数学,是数学中的一个重要分支。在信息学领域,主要用到的内容为排列、组合、容斥原理等。
2. 知识点梳理:
Ø 加法原理与乘法原理
加法原理:做一件事情,完成它可以有n类办法,在第一类办法中有m1种不同的方法,在第二类办法中有m2种不同的方法,……,在第n类办法中有mn种不同的方法。那么完成这件事共有N=m1+m2+,…,+mn种不同的方法。
乘法原理:做一件事情,完成它需要分成n个步骤,做第一步有m1种不同的方法,做第二步有m2种不同的方法,……,做第n步有种mn不同的方法,那么完成这件事有N=m1*m2*,…,*mn种不同的方法。
两个原理的区别:一个与分类有关,一个与分步有关;加法原理是“分类完成”,乘法原理是“分步完成”。
Ø 排列
从n个不同元素中,任取m(m≤n)个元素按照一定的顺序排成一列,叫做从n个不同元素中取出m个元素的一个排列,记做m(n)或者m(n)。
计算公式:m(n)=n(n-1)(n-2)……(n-m+1)=!(n!)
Ø 组合
从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合,记做m(n)。
计算公式:m(n)=m()=m!(n-m+1)=!(n!)
加法递推:n-1(m),边界条件n(n)。
乘法递推:n(m-1),边界条件n(0)。
Ø 鸽巢原理(抽屉原理)
简单形式:如果n+1个物体被放进n个盒子,那么至少有一个盒子包含两个或更多的物体。
加强形式:令q1, q2, ... ,qn为正整数。如果将q1+q2+…+qn-n+1个物体放入n个盒子内,那么或者第一个盒子至少含有q1个物体,或者第二个盒子至少含有q2个物体,…,或者第n个盒子含有qn个物体
Ø 容斥原理与错位排列
容斥原理又称排容原理,在组合数学里,其说明若A1, ..., An为有限集,则其中|A|表示A的基数。例如在两个集的情况时,我们可以透过将|A|和|B|相加,再减去其交集的基数,而得到其并集的基数。
错位排列即重新排列一个序列后,序列上每个元素的位置与初始位置都不同。计算错位排列的个数用到容斥原理,最终结果为
2. 重难点分析:
u 求解组合数学类题目时,需要明确该用哪种组合数学方法。
u 计算过程中,根据题目要求,使用直接求解公式或递推公式(一般使用递推公式)。
u 在需要用高精度运算情况下使用高精度。
3. 例题解析:
例题1-1:计算系数(NOIP2011)
【问题描述】给定一个多项式(ax+by)k,其中k≤1000,请求出多项式展开后xnym的系数 (n+m=k)。这个系数可能很大,输出对10007取模后的结果。
【分析】本题根据二项式定理,可知其解为mod 10007。对其进行求解,可先计算mod 10007,对于组合数,可按照组合数递推公式求解,用二维数组保存中间结果即可。
假如不知道二项式定理,本题也可直接展开求解。f(i,j)表示多项式(ax+by)i中第j项的值,递推更新即可。注意每一步都对10007取模。
NOIP信息学视频地址
视频地址
链接:https://pan.baidu.com/s/1tHo1DFMaDuMZAemNH60dmw
提取码:7jgr