集合划分
发布时间
阅读量:
阅读量
设集合S包含n个元素,表示为S=⟨a1,a2,……,an⟩,现将其划分为k个满足以下条件的子集S1,S2,……,Sk,并且满足如下要求:
1.每个子集Si均非空
2.任意两个不同的子集Si与Sj之间不存在交集(其中1≤i,j≤k且i≠j)
3.所有子集的并集等于原集合S
上述划分方式被称为集合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
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<algorithm>
using namespace std;
long long s(int n , int k)
{
if((n <
全部评论 (0)
还没有任何评论哟~
