【题目分析】
组合数+DP
【代码】
#include <cstdio>
#include <iostream>
const int mod=10056;
using namespace std;
int dp[1001][1001],n,f[1001];
inline void init()
{
for (int i=0;i<=1000;++i) dp[i][0]=1;
for (int i=1;i<=1000;++i)
for (int j=1;j<=1000;++j)
dp[i][j]=(dp[i-1][j-1]+dp[i-1][j])%mod;
f[0]=1;
for (int i=1;i<=1000;++i)
for (int j=1;j<=i;++j)
(f[i]+=dp[i][j]*f[i-j])%=mod;
}
int main()
{
init();
int tt,kase=0;
scanf("%d",&tt);
while (tt--)
{
scanf("%d",&n);
printf("Case %d: %d\n",++kase,f[n]);
}
}