首页 > 其他 > 详细

子集生成模板、

时间:2016-02-05 11:42:01      阅读:92      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!