枚举子集模板

增量构造法

代码

#include <bits/stdc++.h>
using namespace std;
int a[110],num[110];
int n;
void ziji(int cur)
{
  for(int i=0;i<cur;i++)//直接输出
  cout<<num[a[i]]<<" ";
  if(cur)//避免第一行多余的空行
  cout<<endl;
  int s=cur?a[cur-1]+1:0;
  for(int i=s;i<n;i++)//直接构造
  {
    a[cur]=i;
    ziji(cur+1);
  }
}
int main()
{
  cin>>n;
  for(int i=0;i<n;i++)
  cin>>num[i];
  ziji(0);
}

猜你喜欢

转载自www.cnblogs.com/baccano-acmer/p/9914065.html