#include<bits/stdc++.h>
using namespace std;
int T,casecnt,n;typedef long long LL;
const int mod = 10056;
int dp[1001],c[1001][1001];
int main()
{
ios::sync_with_stdio(false);
c[0][0]=1;dp[0]=dp[1]=1;
for(int i=1;i<=1000;i++)
{
c[i][0] = 1;
for(int j=1;j<=i;j++)
{
c[i][j] = (c[i-1][j]+c[i-1][j-1])%mod;
//或者 c[i][j] = (n-i+1)/i*c[i][j-1]; 但由于有模运算所以我们选上面这种.
}
}
dp[0] = dp[1] = 1;
for(int i=2;i<=1000;i++)
for(int j=0;j<=i;j++)
dp[i]=(dp[i]+(LL)c[i][j]*dp[i-j])%mod;
cin>>T;
while(T--)
{
cin>>n;
cout<<"Case "<<++casecnt<<": "<<dp[n]<<endl;
}
return 0;
}
【组合数学】Race, UVa12034
最新推荐文章于 2019-08-05 17:56:36 发布