码迷,mamicode.com
首页 > 其他好文 > 详细

子集生成模板、

时间:2016-02-05 11:43:12      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

 1 //子集生成算法:给定一个集合,枚举所有可能的子集。
 2 //为了简单起见,讨论的方法中没有重复元素
 3 
 4 //增量构造法
 5 #include<cstdio> 
 6 #include<cmath>
 7 void print_subset(int n,int* A,int cur)
 8 {
 9     for(int i = 0 ; i < cur; ++i)    printf("%d",A[i]);
10     printf("\n");
11     int s = cur ? A[cur-1]+1 : 0;        //确定当前元素的最小可能值、 
12     for(int i = s; i < n; ++i){
13         A[cur]=i;
14         print_subset(n,A,cur+1);    //递归构造子集、 
15     }
16 }
17 int main()
18 {    
19     int A[10],n;                //这种方法只适合求从0~n-1的连续整数的子集 
20     scanf("%d",&n);
21     for(int i=0;i<n;++i)
22         scanf("%d",&A[i]);
23     print_subset(n,A,0);
24 }

 

子集生成模板、

标签:

原文地址:http://www.cnblogs.com/sasuke-/p/5182723.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!