/*
将N张卡分成若干个集合,集合不为空,有多少种分法。
f[n][m]表示n张卡分成m组的种类数,那么f[n][m]=f[n-1][m-1]+f[n-1][m]*m,//第二类斯特灵数
而ans[n]=sum{f[n][l]}(1<=l<=m)。//ans为贝尔数,Bell数是将P个元素集合分到非空且不可区分例子的划分个数。
其中:f[n-1][m-1]代表第n个人自成一堆;
f[n-1][m]*m代表第n个人不自成一堆。
*/
# include
# include
# include
using namespace std; int f[2011][2011]; int main() { int i,l; int t,n; int ans[2011]; f[1][1]=1; ans[1]=1; for(i=2;i<=2000;i++) { f[i][1]=1;//i张卡在一本书里 f[i][i]=1;//i张卡在i本书里 ans[i]=2;//上面;两种情况 for(l=2;l