1315 例4 5 集合的劃分

2021-10-01 08:06:01 字數 839 閱讀 3457

【題目描述】

設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個(0<k≤n<30)無標號的盒子中,使得沒有乙個盒子為空。請你確定n個元素a1,a2,……,an 放入k個無標號盒子中去的劃分數s(n,k)。

【輸入】

給出n和k。

【輸出】

n個元素a1,a2,……,an 放入k個無標號盒子中去的劃分數s(n,k)。

【輸入樣例】

10 6

【輸出樣例】

22827

1、遞迴關係 :分類:設f(n,k),乙個元素只有兩種情況

(1)該元素是乙個子集,那麼其他n-1個元素要分成k-1個子集,即f(n-1,k-1);

(2)該元素只乙個子集元素,那麼其他n-1個元素要分成k個子集,這個元素可能其中任何子集乙個元素,kf(n-1,k);

f(n,k)=f(n-1,k-1)+kf(n-1,k);

2、邊界條件:

當k=0,或k>n時 只有0種分法。

當k=1,或k=n時,只有1種分法。

#include

using

namespace std;

long

longf(

int n,

int k)

intmain()

1315 例4 5 集合的劃分

這題感覺還是很難得,要注意點 a 函式s返回值是long long型 因為可能種模擬較多 b 來說一下這個遞迴函式 1.n2.n k 和 k 1 相等說明每個子集合只有乙個元素,k 1說明只有乙個集合所有它要包含所有的元素,因為並集是s 3 分倆總情況 是k子集合中的乙個,於是我們只要把a1,a2,...

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