2 7 集合劃分問題

2022-05-20 19:55:25 字數 992 閱讀 9498

問題描述:

n 個元素的集合可以劃分為若干個非空子集。例如,當 n=4 時,集合可以劃分為 15 個不同的非空子集如下:

,,,},

,,},

,,},

,,},

,,},

,,},

,,},

,},,},

,},,},

,},,},

,},}

´程式設計任務:

給定正整數 n,計算出 n 個元素的集合可以劃分為多少個不同的非空子集。

´資料輸入:

由檔案 input.txt 提供輸入資料。檔案的第 1 行是元素個數 n。

´結果輸出:

程式執行結束時,將計算出的不同的非空子集數輸出到檔案 output.txt 中。

輸入檔案示例 輸出檔案示例

input.txt output.txt

5 52

【題解】

bell數的第i項就對應了1..i的非空集合劃分個數。

可以這樣遞推

b[0]=b[1]=1(空或只有乙個元素的話,那麼只有乙個劃分,就是都把它們本身放在乙個集合裡)

否則```cpp

for (int i = 2;i <= n;i++)

bell[i] = temp;

}```【**】

#include #define ll long long

using namespace std;

const int n = 18;

int n;

ll f[n+10];

ll bell[n+10];

ll c(int n,int m)

int main()

bell[i] = temp;

}int n;

scanf("%d",&n);

printf("%i64d\n",bell[n]);

return 0;

}

9409 集合的劃分問題

time limit 3 second memory limit 2 mb 問題描述 n 個元素的集合可以劃分為若干個非空子集。例如,當n 4 時,集合可以劃分為15 個不同的非空子集如下 其中,集合 由1 個子集組成 集合,由2 個子集組成 集合,由3 個子集組成 集合,由4 個子集組成。程式設計...

2 8 集合劃分問題 給定要分成幾個集合

問題描述 n 個元素的集合可以劃分為若干個非空子集。例如,當 n 4 時,集合可以劃分為 15 個不同的非空子集如下 其中,集合 由 1 個子集組成 集合,由 2 個子集組成 集合,由 3 個子集組 成 集合,由 4 個子集組成。程式設計任務 給定正整數 n 和 m,計算出 n 個元素的集合可以劃分...

例4 5 集合的劃分

時間限制 1000 ms 記憶體限制 65536 kb 提交數 218 通過數 158 題目描述 設s是乙個具有n個元素的集合,s 現將s劃分成k個滿足下列條件的子集合s1,s2,sk 且滿足 1 si 2 si sj 1 i,j k i j 3 s1 s2 s3 sk s 則稱s1,s2,sk是集...