组合数学
两个原理
加法原理
方案之间具有并列关系,不能同时使用
乘法原理
方案之间具有层次或阶段关系,可以同时使用
排列
线排列
定义:一般地,从n个不同的元素中,取出m(m<=n)个元素按照一定的顺序排成一列,叫做从n个不同的元素中取出m个元素的一个线排列。从n个不同的元素中取出m(m<=n)个元素的所有线排列的个数,叫做从n个不同元素的排列数,用符号P(n,m)或Pmn表示。
组合
组合plus:球与盒
默认问题为 n 个小球放到 m个盒子里,题型共有三项要求,球是否相同,盒子是否相同,能否有空盒。
1.球相同,盒子不同,不能有空盒
ans=Cm−1n−1
2.球相同,盒子不同,可以有空盒
ans=Cm-1n+m-1
3.球不同,盒子不同,可以有空盒
ans=mn
(乘法原理)
4.球不同,盒子相同,不能有空盒
第2类Stirling数
S[i][j]=S[i-1][j]*j+s[i-1][j-1]
(S[i][j]表示前i个小球放到前j个盒子里的方案数)
5.球不同,盒子也不同,不能有空盒
ans=m!*S[n][m]
6.球不同,盒子相同,可以有空盒
Bell数
ans=Σ(i=1->m)S[n][i]
7.球相同,盒子相同,可以有空盒
if(i==0||j==1) f[i][j]=1;
if(i<j) f[i][j]=f[i][i];
if(i>=j) f[i][j]=f[i-j][j]+f[i][j-1];
ans=f[n][m]
8.球相同,盒子相同,不能有空盒
ans=f[n-m][m]