1315 例4 5 集合的劃分

2021-08-21 11:52:13 字數 771 閱讀 8700

這題感覺還是很難得,要注意點:
a 函式s返回值是long long型 因為可能種模擬較多

b 來說一下這個遞迴函式

1.n2.n==k 和 k=1 相等說明每個子集合只有乙個元素, k=1說明只有乙個集合所有它要包含所有的元素,因為並集是s

3 分倆總情況:

是k子集合中的乙個,於是我們只要把a1,a2,,,,,an-1劃分k-1個子集,劃分的個數共有s(n-1,k-1)

不是k個子集中的任意乙個子集,則an必與其他元素構成乙個子集,則問題相當於先把a1,a2,a3.....an-1劃分成k個子集,這  種情況下劃分數共有s(n-1,k)個,然後在把an加入到k個子集中的任意乙個中去,共有k種加入方式,這樣對於an的每一種加入方式,都可以使集合劃分為k個子集,因此根據乘法原理,劃分數共有k*s(n-1,k)個

其實對於遞迴沒必要要求把每一步都需要知道,知道了出口和它的要遞迴的規律就可以了  每一層這麼多,我們不可能把每一步都搞的清楚

#include#includeusing namespace std;

long long s(int n,int k)

1315 例4 5 集合的劃分

題目描述 設s是乙個具有n個元素的集合,s a1,a2,an 現將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是集合s的乙個劃分。它相當於把s集合中的n個元素a1,a2,an 放入k個...

1315 例4 5 集合的劃分

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

例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是集...