在学中国剩余定理的时候 突然发现了贝尔数。。感觉和组合数差不多 就学了一下。。别看代码很水 其实题也挺水的
题意:将N张卡分成若干个集合,集合不为空,有多少种分法
#include <iostream>
#include <stdio.h>
#include<algorithm>
#define LL long long
#define maxn 2010
using namespace std;
int arr[2010][2010];
int main()
{
arr[1][1]=1;
for(int i=2;i<=2000;i++)
{
arr[i][1]=arr[i-1][i-1]%1000;
for(int j=2;j<=i;j++)
{
arr[i][j]=(arr[i-1][j-1]+arr[i][j-1])%1000;
}
}
int t;
cin>>t;
while(t--)
{
int x;
cin>>x;
printf("%d\n",arr[x][x]);
}
return 0;
}