浴谷夏令营2017.8.1基础数学知识的整理

1.排列与组合

1.1 排列

1.2 组合

C(n,m)=C(n-1,m)+C(n-1,m-1)

1.3 二项式定理

(a+b)^n=ΣC(n,i)a^i*b^n-i

例1.1组合数

题目来源:洛谷3414

快速幂

1.4四种放球方法

1)n个不同球放入m个不同袋子 m^n

2)n个相同球放入m个不同袋子 隔板法 C(n+m-1,m-1)

3)n个相同球放入m个相同袋子 用球数目递增判重 f[i][j]=f[i-j][j]+f[i][j-1]

4)n个不同球放入m个相同袋子 f[i][j]=f[i-1][j-1]+f[i-1][j]*j

其中(1)(2)袋子不同,可以直接用计数方法解决

(3)(4)袋子是相同的,可以互相交换,只能用dp解决

2.计数原理

2.1 抽屉原理

2.2 加法原理

2.3 乘法原理

2.4 容斥原理

记f(S)表示满足集合S中至少一个条件的方案数,g(S)表示满足集合S中所有条件的方案数,h(S)表示不满足集合S中所有条件的方案数。

f(S)=Σ(-1)|T|-1g(T),其中T为S的非空子集。

通俗地说就是先把满足一个条件的都加上,这时候满足两个条件的被加了两次,所以要减掉一次,然后满足三个条件的被减成0次了,要加上一次…... 还有另一种形式。 

求并集可以转化为求交集

并则求交

g(S)=Σ(-1)|T|h(T),其中T为S的子集。

通俗地说就是先加上所有方案,然后扣掉不满足一个条件的方案,这时候不满足两个条件的被扣了两次,所以要加上一次,然后不满足三个条件的被加回1次了,所以要扣掉一次……

求交集可以转化为求补集

交则求补

例4.1

对一个n*m的棋盘染色,每格可以是黑色或白色。

要求每行每列都有黑格。

求方案数对10^9+7取模的结果。 n,m<=10^3。

需要满足的条件是第1行、第2行…第n行、第1列、第2列…第m列都有黑格。

用容斥原理转化为枚举其中一些条件不满足,也就是有一些行一些列全是白格。

枚举行数i和列数j,那么选出i行j列的方案数是C(n,i)C(m,j),这i行j列全是白格的方案数是2^(n-i)(m-j)。

所以答案就是Σ(-1)^(i+j)*C(n,i)C(m,j)2^(n-i)(m-j)。 时间复杂度O(nm)

例4.2

对一个n*m的棋盘染色,每格可以是黑色或白色。

要求存在一行或一列都是黑格。

求方案数对10^9+7取模的结果。 n,m<=10^3。

需要满足的条件是第1行、第2行…第n行、第1列、第2列…第m列其中之一都是黑格。

用容斥原理转化为枚举其中一些(至少一个)条件都满足,也就是有一些行一些列全是黑格。

枚举行数i和列数j,那么选出i行j列的方案数是C(n,i)C(m,j),这i行j列全是白格的方案数是2(n-i)(m-j)。

所以答案就是Σ(-1)i+j-1C(n,i)C(m,j)2(n-i)(m-j)。 时间复杂度O(nm)

上面两个问题其实是互补的。

容斥出来的式子也是互补的。

其实那两个容斥的式子就是互补的。

例4.3

对一个n*m的棋盘染色,每格可以是黑色或白色。

要求存在一行和一列都是黑格。

求方案数对10^9+7取模的结果。 n,m<=10^3。

需要满足的条件是:

(A)第1行、第2行…第n行其中之一都是黑格。

(B)第1列、第2列…第m列其中之一都是黑格。

先对A用容斥原理,答案变为Σ(-1)i-1C(n,i)*有i行都是黑格且满足B的方案数。

再对B用容斥原理,答案变为Σ(-1)i-1C(n,i)*Σ(-1)j-1C(m,j)*有i行j列都是黑格的方案数。

化简一下就是Σ(-1)i+jC(n,i)C(m,j)2(n-i)(m-j),其中i,j>=1。 时间复杂度O(nm)

3.概率与期望

3.1 概率的一些性质

如果事件A和事件B是互斥的,那么P(A∪B)=P(A)+P(B)。

如果事件A和事件B是相互独立的, 那么P(A∩B)=P(A)*P(B),P(A|B)=P(A)。

全概率公式:P(A)=ΣP(A|B=bi)*P(B=bi)。

贝叶斯公式:P(A|B)=P(B|A)P(A)/P(B)

3.2 期望的一些性质

如果事件A和事件B是相互独立的, 那么E(AB)=E(A)*E(B)。

全期望公式:E(A)=ΣE(A|B=bi)*P(B=bi)。

期望的线性性:E(A+B)=E(A)+E(B)。

例3.1 百事世界杯之旅

每次从[1,n]中随机一个整数,问期望随机多少次可以把1~n都随机到。 1<=n<=10^6。

如果已经随机出了k个数,那么期望多少次可以随机出一个新的数呢?

随机出新的数的概率是(n-k)/n。 记x=(n-k)/n,那么期望就是1+(1-x)+(1-x)^2+……=1/(1-(1-x))=n/(n-k)。

那么答案就是n/1+n/2+…+n/n。 时间复杂度O(n)

例3.2 巧克力

有k种颜色的巧克力。每次拿出一个随机颜色的巧克力放到桌上,如果桌上有2个巧克力颜色一样就把它们一起吃掉。

问拿出n个巧克力后桌上恰好有m个巧克力的概率。 1<=n,m<=10^8,1<=k<=100。

用f[i][j]表示i轮之后桌上有j个巧克力的概率。

f[i][j]=f[i-1][j-1]*(k-(j-1))/k+f[i-1][j+1]*(j+1)/k。

打表发现i的奇偶性确定时f[i][j]是收敛的。 i只要枚举到1000就好了。 时间复杂度O(1000*k)

例3.3 骰子

小A有一个骰子,这个骰子有n面,扔出i的概率是pi。

他扔一次骰子,如果扔到i,那么他有qi的概率吃一颗巧克力。

现在你看到他吃了一棵巧克力,问他扔出每个数字的概率。 1<=n<=100。

贝叶斯公式:P(A|B)=P(B|A)P(A)/P(B)

4.复杂度分析

5.一些

5.1 越狱

正难则反

5.2 妖梦拼木棒

题目来源:洛谷3799

巧妙枚举

5.3 牛的IDCow IDs

题目来源:洛谷3048

用组合数巧妙处理

5.4 错位排列

递推或容斥

5.5 硬币购物

题目来源:洛谷1450

预处理+容斥

5.6 RedIsGood

期望dp

原文地址:https://www.cnblogs.com/w-h-h/p/7728292.html