斯特林数
原来这玩意这么他妈的简单
第二类-斯特林子集数
n个数,分进m个集合时的方案数
$$
f[i][j]=f[i-1][j-1]+f[i-1][j]\cdot j
$$
第一类-斯特林轮换数
1~n的排列,形成m个环的方案数
$$
f[i][j]=f[i-1][j-1]+f[i-1][j]\cdot (i-1)
$$
划分数
https://www.luogu.com.cn/problem/P6189
给定一个数n,求它的划分方案数。1+4和4+1算同一种
比如
$$
5=1+1+1+1+1\
=1+1+1+2\
=1+1+3\
=1+2+2\
=1+4\
=2+3\
=5
$$
巧妙的dp想法:
$$
f[i][j]表示i拆成j个数的方案数\
f[i][j]=f[i-1][j-1]+f[i-j][j]\
第一种情况是存在1时的,第二种情况是不存在1的,那么方案数与把所有数-1时的情况相同
$$
另:套用完全背包想法
上面两种方法复杂度$O(n^2)$
优化解法:
把完全背包方法的第二维分成$\le \sqrt n$和大于的。小于的直接用完全背包的方法做。(最小的数<=根号n)
大于的情况按照上面第一种思路做
$$
f[i][j]=f[i-(T+1)][j-1]+f[i-j][j]\
第一种是==T,第二种是>T
$$