小白书之求无重复元素集合的子集
来源:互联网 发布:淘宝美工课程介绍 编辑:程序博客网 时间:2024/06/05 07:46
1:增量构造法:
一次选出一个元素放到集合中。
#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include<string>#include<cctype>#include<cmath>#include<map>#include<set>#include<vector>#include<queue>#include<stack>#include<ctime>#include<algorithm>#include<climits>#define LL long longusing namespace std;const int N=101;int P[N];void print_subset(int n,int *A,int cur){ for(int i=0;i<cur;i++) cout<<P[A[i]]<<' '; cout<<endl; int s=cur?A[cur-1]+1:0; for(int i=s;i<n;i++) { A[cur]=i; print_subset(n,A,cur+1); }}int main(){ int n; while(cin>>n) { int A[N]; for(int i=0;i<n;i++) cin>>P[i]; print_subset(n,A,0); } return 0;}2.位向量构造法:
#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include<string>#include<cctype>#include<cmath>#include<map>#include<set>#include<vector>#include<queue>#include<stack>#include<ctime>#include<algorithm>#include<climits>#define LL long longusing namespace std;const int N=101;int P[N];void print_subset(int n,int *A,int cur){ if(cur==n) { for(int i=0;i<n;i++) if(A[i]) cout<<P[i]<<' '; cout<<endl; return; } A[cur]=1; print_subset(n,A,cur+1); A[cur]=0; print_subset(n,A,cur+1);}int main(){ int n; while(cin>>n) { int A[N]; for(int i=0;i<n;i++) cin>>P[i]; print_subset(n,A,0); } return 0;}3.二进制法:
#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include<string>#include<cctype>#include<cmath>#include<map>#include<set>#include<vector>#include<queue>#include<stack>#include<ctime>#include<algorithm>#include<climits>#define LL long longusing namespace std;const int N=101;int P[N];void print_subset(int n,int s){ for(int i=0;i<n;i++) if(s&(1<<i)) cout<<P[i]<<' '; cout<<endl;}int main(){ int n; while(cin>>n) { int A[N]; for(int i=0;i<n;i++) cin>>P[i]; for(int i=0;i<(1<<n);i++) print_subset(n,i); } return 0;}
0 0
- 小白书之求无重复元素集合的子集
- 集合的子集生成(无重复元素)
- java求无重复集合所有子集
- Subsets II 求有重复元素的集合的子集 @LeetCode
- 求一个集合的子集,子集元素数目固定
- 不包含重复元素的集合S,求其所有子集
- 10个集合,集合中无重复元素,但元素个数海量。求这个10个集合的交集。
- 求集合的子集
- 求集合的子集
- 求集合的子集
- 求集合的子集
- 求集合的子集
- 求集合的子集
- 求集合中M个元素构成的子集问题
- 求集合元素的所有非空子集
- 带重复元素的子集
- 带重复元素的子集
- 求集合的全部子集
- 【马马虎虎系列】Unity的attributes大集合(1)
- 2016年人人网笔试题
- 猴子分桃
- 将数组中的正负数就地归类
- 拓展的欧几里得算法
- 小白书之求无重复元素集合的子集
- java script5继承
- AngularJS进阶(三)HTML:让表单、文本框只读,不可编辑的方法
- 关于多属性查找问题的sphinx解决方案
- 威胁情报提供的服务
- 关于Eclipse快捷键操作会了这些你就是大神!
- 黑盒测试
- 向linux内核版本号添加字符/为何有时会自动添加“+”号
- script: [Errno 8] Exec format error