子集生成——二进制法
1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const ll mod=1000000007,maxn=5e4+50; 5 int n,m; 6 int main() 7 { 8 cin>>n; //集合大小 5 {0,1,2,3,4} 9 for(int i=0;i<(1<<n);i++) //生成子集 10 { 11 cout<<i<<" "; //第i个子集 12 for(int j=0;j<n;j++) 13 if(i&(1<<j)) 14 printf("%d ",j); 15 printf("\n"); 16 } 17 }