简单组合数学【笔记】

1、从n个数中无序的选择m个数方案是多少(递推组合数)

C(n,m)=C(n-1,m)+C(n-1,m-1)
C(n-1,m):第m个数不选,从n-1里面选择m个数
C(n-1,m-1):第m个数选,从n-1里面选择m-1个数
例题. 洛谷P3414
求C(n,0)+C(n,1)+…+C(n,n)对6662333取模的结果
等价于有n个数求它的子集总和
2^n
因为选0个+选1个+…+选n个等价于选任意多个,那么每个元素都可以选或不选。

2、将n个相同的球放到m个不同的袋子里有多少种方案?

相同的球,隔板法就好了,在n-1个间隔中插入m-1个板

3、将n个不同的球放到m个相同的袋子里有多少种方案?

dp[i][j]=dp[i-1][j]*m+dp[i-1][j-1]
dp[i][j]表示将第i个球放到j个袋子里
有两种放法
dp[i-1][j-1]表示独立放到一只袋子里,所以加上前面i-1个球放到j-1个袋子里的方法数
dp[i-1][j]*j表示放到前面m个袋子中的任意一个,因为球的种类是不同的,所以就有j种不同的放法
例题 洛谷P1665

4、将n个不同的球放到m个不同的袋子里有多少种方案?

dp[i][j]=dp[i-1][j] * j+ dp [i-1] [j-1] * (m-j+1)
与上面唯一不同的就是放到不同的袋子里去,其它大体都是一样的,唯独就是单独成一袋的情况需要改变
因为袋子不同,剩下的袋子数就是m-(j-1)只袋子,所以乘上m-j+1
例题 洛谷P1287

5、卡特兰数(未完待续)
发布了13 篇原创文章 · 获赞 6 · 访问量 577

猜你喜欢

转载自blog.csdn.net/zx1020354953/article/details/104190218
今日推荐