題目:一共來了n(0<n<25)個同學(xué),按照組隊(duì)規(guī)則(自由組隊(duì),每隊(duì)人數(shù)不限),一共會有多少種不同的組隊(duì)方案呢?
遞推式是:a[i][j]=a[i-1][j-1]+a[i-1][j]*j;
而且。a[i][0]應(yīng)該是為0,不為1的。
此外還得注溢出。要用__int64類型。
http://acm.hdu.edu.cn/showproblem.php?pid=1292
#include<stdio.h>
int main() {
int t, n, i, j;
__int64 a[26][26];
a[1][1] = 1;
a[1][0] = 0;
for (i = 2; i <= 25; i++) {
a[i][0] = 0;
a[i][i] = 1;
for (j = 1; j < i; j++)
a[i][j] = a[i - 1][j - 1] + a[i - 1][j] * j;
}
scanf("%d", &t);
while (t--) {
scanf("%d", &n);
__int64 sum = 1;
for (i = 2; i <= n; i++)
sum += a[n][i];
printf("%I64d\n", sum);
}
return 0;
}
posted on 2010-10-11 20:03
孟起 閱讀(574)
評論(0) 編輯 收藏 引用 所屬分類:
遞推 遞歸