hdu 1292递归

来源:互联网 发布:数据归一化的方法 编辑:程序博客网 时间:2024/06/08 11:01

注意下 递推关系式:a[ i ] [ j ] = a[ i - 1 ][ j - 1 ] + a[ i - 1 ] [ j ] * j;

解析:i 个人的 j 组合数量等与  : (1)将第 i 个 人单独放置( a[ i - 1 ] [ j - 1 ] )( 2 ) 将这个人并入前i-1人的j组合中( a[ i - 1 ][ j ] * j  ) 注意要乘以j 应为每一种组合都有j组 并且均为不同状态

代码如下:

#include <iostream>using namespace std;int main(){    __int64 a[26][26], t, n;    a[1][1] = 1;    a[1][0] = 0;    for( int i = 2; i < 26; i++ ){        a[i][i] = 1;        a[i][0] = 0;        a[i][1] = 1;        for( int j = 1; j < i; j++ ){            a[i][j] = a[i-1][j-1] + a[i-1][j] * j;        }    }    cin >> t;    while( t-- ){        cin >> n;        __int64 sum = 0;        for( int i = 1; i <= n; i++ ){            sum += a[n][i];        }        cout << sum << endl;    }    return 0;}


 

原创粉丝点击