练习赛14.1,。集合的划分

原创 2013年12月02日 20:30:51

集合的划分

Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 19 Accepted Submission(s) : 7

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

设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)。

Input

输入有多组数据,对于输入每组数据有两个整数n和k。

Output

对于每组输入输出划分数。

Sample Input

10  6

Sample Output

22827
思路分析:找规律的题目;
代码:#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int f(int n,int k)
{
    if(n<k||k==0) return 0;
    if(n==k||k==1) return 1;
    return f(n-1,k-1)+f(n-1,k)*k;
}
int main()
{
    int n,k;
    while(scanf("%d%d",&n,&k)!=EOF)
    {
        f(n,k);
        printf("%d\n",f(n,k));
    }
    return 0;
}

【牛客练习赛8】A D E

A 约数个数的和 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 给个n,求1到...
  • qq_37383726
  • qq_37383726
  • 2017年12月16日 19:35
  • 158

集合划分问题(贝尔数)

集合划分问题 Time Limit:1000MS    Memory Limit:32768KB    64bit IO Format:%I64d & %I64u SubmitStatus De...
  • MIKASA3
  • MIKASA3
  • 2016年04月29日 19:52
  • 1449

Set Partition Algorithm(集合划分算法)

转载自:http://blog.sina.com.cn/s/blog_567842410100nf0c.html 设n个元素的集合可以划分为f(n,m)个不同的由m个非空子集组成的集合。 ...
  • godenlove007
  • godenlove007
  • 2012年09月07日 22:23
  • 2364

递归与分治策略——集合划分问题,众数问题

集合划分问题n个元素的集合{1,2,.,n }可以划分为若干个非空子集。例如,当n=4 时,集合{1,2,3,4}可以划分为15个不同的非空子集如下:{1},{2},{3},{4}}, {{1,2},...
  • Christophe2008
  • Christophe2008
  • 2011年04月21日 15:05
  • 5879

[递推递归] 集合的划分

题目描述 设s是一个具有n个元素的集合,s={a1,a2,…,an},现将s划分成k个满足下列条件的子集合s1,s2,…,sk,满足: (1)si≠ф (2)si∩sj=ф (1≤i,...
  • Mr_Doublerun
  • Mr_Doublerun
  • 2016年04月30日 17:48
  • 385

把一个具有5个元素的集合划分成三个子集(允许重复),c实现版本

#include static void print_bit_u5(unsigned char u5[3]){ int i,j, k; for (i=0; i < 3; i++){  (i==0)? ...
  • huer0625
  • huer0625
  • 2010年06月01日 18:29
  • 661

动态规划_求连续整数的划分方案总数

题目: 对于从1到N的连续整数集合,能划分成两个子集合,且保证每个集合的数字和是相等的。 举个例子,如果N=3,对于{1,2,3}能划分成两个子集合,他们每个的所有数字和是相等...
  • yyr2008
  • yyr2008
  • 2016年01月07日 00:51
  • 516

51Nod-1352-集合计数

ACM模版描述题解使用常规思路枚举的话一定会超时,这里需要用到扩展欧几里得算法求满足Ax + By = N + 1的方程大于0的最小值和A、B的最小公倍数,最后分析res可以拆解出来多少个C(最小公倍...
  • f_zyj
  • f_zyj
  • 2016年08月12日 01:14
  • 385

51Nod-1557-两个集合

ACM模版描述题解我用的方法复杂度是 O(nlogn),快排+二分,思路挺简单,但是容易漏,要想全才行。这个问题也就是数对儿问题,x+pA=a 或者 x+pB=b。首先,我们只用分析 NO 的情况,其...
  • f_zyj
  • f_zyj
  • 2017年03月06日 23:04
  • 328

JAVA实现集合划分问题

/*集合划分问题:  * n个元素的集合{1,2,.,n }可以划分为若干个非空子集。例如,当n=4 时,集合{1,2,3,4}可以划分为15个不同的非空子集如下:  {1},{2},{3},{4...
  • wangzhongsheng
  • wangzhongsheng
  • 2013年06月02日 16:53
  • 575
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:练习赛14.1,。集合的划分
举报原因:
原因补充:

(最多只允许输入30个字)