最新消息:码丁实验室,一站式儿童编程学习产品,寻地方代理合作共赢,微信联系:leon121393608。

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

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

码丁实验室,一站式儿童编程学习产品,寻地方代理合作共赢,微信联系:leon121393608。

【题目描述】

设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

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