您的位置:首页 > 其它

UVa 12034 - Race(组合+递推)

2015-07-25 19:15 369 查看
书上给了公式,照着敲的。

#include <cstdio>
using namespace std;
const int maxn = 1010;
const int mod = 10056;
int c[maxn][maxn];
int f[maxn];
void pre() {
for(int i = 0; i < maxn; ++i) c[i][0] = 1;
for(int i = 1; i < maxn; ++i)
for(int j = 1;j <= i; ++j)
c[i][j] = (c[i-1][j] + c[i-1][j-1]) % mod;
f[0] = 1;
for(int i = 1; i < maxn; ++i)
for(int j = 0; j <= i; ++j)
f[i] += f[i-j] * c[i][j], f[i] %= mod;
}
int main() {
pre();
int t, n, tt=0;scanf("%d",&t);
while(t--){
scanf("%d", &n);
printf("Case %d: %d\n", ++tt, f
);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: