生成子集

来源:互联网 发布:大数据 翻译 mass data 编辑:程序博客网 时间:2024/05/22 05:30

增量构造法

#include <iostream>  #include <cstdio>  #include <cmath>  #include <algorithm>  #include <cstring>  #include <queue>  #include <string>  #include <map>  #include <stack>  #include <list>  #include <set>using namespace std;int a[100];int b[100];void print(int n, int *a,int cur){    for(int i = 0; i < cur; i++)        printf("%d ",b[a[i]]);    printf("\n");    int s = cur ? a[cur-1]+1:0;    for(int i = s; i < n; i++)    {        a[cur] = i;        print(n,a,cur+1);    }}int main(){    int n;    while(scanf("%d",&n) != EOF)    {        for(int i = 0; i < n; i++)            scanf("%d",&b[i]);        print(n,a,0);    }    return 0;}


0 0