子集生成模板
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了子集生成模板相关的知识,希望对你有一定的参考价值。
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 }
以上是关于子集生成模板的主要内容,如果未能解决你的问题,请参考以下文章
VS Code配置snippets代码片段快速生成html模板,提高前端编写效率