二进制枚举子集
2013-07-19 09:39
218 查看
#include<stdio.h> void print_subset(int n, int s) { // 打印{0, 1, 2, ..., n-1}的子集S for(int i = 0; i < n; i++) if(s&(1<<i)) printf("%d ", i); // 这里利用了C语言“非0值都为真”的规定 printf("\n"); } int main() { int n = 5; for(int i = 0; i < (1<<n); i++) // 枚举各子集所对应的编码 0, 1, 2, ..., 2^n-1 print_subset(n, i); return 0; }
来源<算法竞赛入门经典>--二进制法 上一篇文章就用了二进制法枚举
相关文章推荐
- Water Gate Management(二进制枚举组合排列模板 n个数的子集)
- 枚举子集 增量构造法 位向量法 二进制法
- --Untltled(hdu5339) (集合子集的枚举,二进制枚举)
- Water Gate Management(二进制枚举组合排列模板 n个数的子集)
- 二进制枚举子集
- Basketball Gym - 100741L 二进制枚举子集
- 简单记录一下二进制枚举状态子集的技巧
- 【位运算符与逻辑运算符知识点】【二进制枚举子集】【just for 状压】
- UVA - 1151 Buy or Build(最小生成树+二进制枚举子集)
- 二进制枚举子集
- 二进制枚举集合子集
- USACO Healthy Holsteins(二进制枚举子集)
- 二进制枚举子集
- HDU 4770 Lights Against Dudely(二进制枚举子集)
- uva-1151-Buy or Build-二进制枚举子集,并查集,最小生成树,kruskal
- hdu 1557 权利指数 ( 二进制枚举子集) 解题心得
- 二进制枚举子集(计蒜客)
- 二进制枚举子集
- C++二进制枚举子集
- C++之暴力算法突破-二进制枚举子集