求含有N个元素的子集
Posted simpleknight
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求含有N个元素的子集相关的知识,希望对你有一定的参考价值。
题意:已知一个集合A含有M个元素,输出含有N个元素的集合A的所有子集
思路:深搜
代码:
#include <iostream> #include <cstring> #include <queue> #include <cmath> #include <cstdio> #include <algorithm> using namespace std; int m,n; int data[1000]; void dfs(int num,int *k,int wei) { if(wei==m&&num<n) return ; if(num==n) { for(int i=0;i<num;i++) { cout<<k[i]<<" "; } cout<<endl; return ; } else { k[num]=data[wei]; dfs(num+1,k,wei+1); dfs(num,k,wei+1); } } int main() { while(cin>>m>>n) { for(int i=0;i<m;i++) { cin>>data[i]; } int ans[1000]; dfs(0,ans,0); } return 0; }
以上是关于求含有N个元素的子集的主要内容,如果未能解决你的问题,请参考以下文章
如何证明,在n个元素组成的集合中取n+1个不同的三元子集,求证必有两个子集,它们恰有一个公共元?