HDU1292 i个不同元素分成j堆的分法

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <cmath>
 5 #include <cstdlib>
 6 #include <algorithm>
 7 #include <vector>
 8 #include <stack>
 9 #include <queue>
10 #include<cassert>
11 #include<set>
12 using namespace std ;
13 #ifdef DeBUG
14 #define bug assert
15 #else
16 #define bug //
17 #endif
18 
19 int main()
20 {
21     #ifdef DeBUG
22         freopen("C:\Users\Sky\Desktop\1.in","r",stdin);
23     #endif
24     
25     __int64 a[100][100];
26     a[0][0]=1;
27     for(int i=1;i<100;i++)//将i个不同的元素分成j堆有多少种情况,都在这了 
28     {
29         for(int j=1;j<100;j++)
30         {
31             a[i][j]=a[i-1][j]*j+a[i-1][j-1];
32         }
33     }
34     int T;
35     scanf("%d",&T);
36     while(T--)
37     {
38         int n;
39         __int64 sum=0;
40         scanf("%d",&n);
41         for(int i=1;i<=n;i++)
42         sum+=a[n][i];
43         printf("%I64d
",sum);
44     }
45     
46     return 0;
47 }
View Code

 对应OJ 1292

原来是斯特林数

原文地址:https://www.cnblogs.com/Skyxj/p/3188218.html