最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

信息学奥赛题库- 【例4.5】集合的划分

C++ 少儿编程 1526浏览 0评论

友情提示:380元/半年,儿童学编程,就上码丁实验室

【题目描述】

设S是一个具有n个元素的集合,$S=langle a_1,a_2,……,a_n rangle$,现将S划分成k个满足下列条件的子集合$S_1,S_2,……,S_k$ ,且满足:

1.$S_i ≠ ∅$

2.$S_i ∩ S_j = ∅$            ($1≤i,j≤k,i≠j$)

3.$S_1 ∪ S_2 ∪ S_3 ∪ … ∪ S_k = S$

则称$S_1,S_2,……,S_k$是集合S的一个划分。它相当于把S集合中的n个元素$a_1 ,a_2,……,a_n$ 放入$k$个($0<k≤n<30$)无标号的盒子中,使得没有一个盒子为空。请你确定$n$个元素$a_1 ,a_2 ,……,a_n$ 放入$k$个无标号盒子中去的划分数$S(n,k)$。

【输入】

给出$n$和$k$。

【输出】

$n$个元素$a_1 ,a_2 ,……,a_n$ 放入$k$个无标号盒子中去的划分数$S(n,k)$。

【输入样例】

10 6

【输出样例】

22827

您必须 登录 才能发表评论!