HDU1292 "下沙野骆驼"ACM夏令营 递推

HDU1292 "下沙野骆驼"ACM夏令营 递推
题目:一共来了n(0<n<25)个同学,按照组队规则(自由组队,每队人数不限),一共会有多少种不同的组队方案呢?
递推式是:a[i][j]=a[i-1][j-1]+a[i-1][j]*j;

而且。a[i][0]应该是为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 ;
}

你可能感兴趣的:(HDU1292 "下沙野骆驼"ACM夏令营 递推)