子集枚举的几种方法
来源:互联网 发布:校园宿舍管理系统java 编辑:程序博客网 时间:2024/05/21 15:47
生成{0,1,2,3,...,n-1} 所有子集的三种方法
#include<cstdio>#include<cstring>using namespace std;const int N = 10005;//增量构造法//void psubset(int n, int *a, int cur)//{// for(int i = 0; i < cur; ++i) printf("%d ", a[i]);// //打印当前集合// printf("\n");///**/int s = cur ? a[cur - 1] + 1 : 0;// //定序,确定当前元素最小可能值// for(int i = s; i < n; ++i)// {// a[cur] = i;// psubset(n, a, cur + 1);//递归构造子集// }//}//位向量法//void psubset(int n, int *b, int cur)//{// if(cur == n)// {// for(int i = 0; i < cur; ++i)// if(b[i]) printf("%d ", i); //打印当前集合// printf("\n");// return;// }// b[cur] = 1; //选第cur个元素// psubset(n, b, cur + 1);// b[cur] = 0; //不选第cur个元素// psubset(n, b, cur + 1);//}//二进制法void psubset(int n){ for(int s = 0; s < 1 << n; ++s) { for(int i = 0; i < n; ++i) if(s & (1 << i)) printf("%d ", i); printf("\n"); }}int main(){ int a[N], n; while(scanf("%d", &n)) { psubset(n); } return 0;}
1 0
- 子集枚举的几种方法
- 枚举子集方法
- 枚举子集的三种算法
- 集合的子集枚举
- 枚举进程的几种方法
- java类型枚举的几种方法
- 枚举进程的几种方法
- 枚举一定条件的子集
- 用户态枚举进程的几种方法
- 枚举 window 系统串口的几种方法
- 枚举当前进程的几种方法(总结)
- 用户态枚举进程的几种方法(转载)
- java 几种常用的枚举(Enum)方法
- 枚举子集
- 枚举子集
- 枚举子集
- 枚举子集
- hdu-5823-color II-状压DP-枚举子集的子集
- 黑马程序员--java概述
- MySql常用命令总结
- QT 数据库操作
- hdu3635Dragon Balls
- C#、VB获取本月第一天、本月最后一天
- 子集枚举的几种方法
- Android网络框架总结Volley(一)
- js获取GridView中CheckBox的选中状态
- cma --- linux驱动中分配连续物理内存
- hdu 1257 最少拦截系统
- shell 提取mysql指定数据库下表创建语句为单文件
- 六大BaaS产品推荐:移动开发必备的后端云服务
- opengl 教室 地球仪 模型
- Python实用技巧---列表推导式(轻量级循环)与map