二进制输出所有的子集
来源:互联网 发布:数据存储四种方式 编辑:程序博客网 时间:2024/05/20 22:01
参考的书是刘汝佳《算法竞赛入门经典》
对于一个二进制数,从右往左,第一位代表数字0,第二位代表数字1,第三位代表数字2,以此类推,这样一个二进制数就可以代表一个子集了。例如0100011000110111表示对应的子集为{0,1,2,4,5,9,10,14}
最重要的好处是,利用二进制数表示子集,可以很方便的表示集合的交并补运算。二进制数的&对应交运算,|对应并运算,ALL_BITS^A对应补运算,ALL_BITS = (1<<n)-1,表示全1,下面是具体的代码
#include <iostream>using namespace std;void print_subset(int n, int s){for(int i = 0; i < n; i++)if(s&(1<<i)) cout<<i<<" ";cout<<endl;}int main(){while(1){int n;cin>>n;for(int i = 0; i < (1<<n); i++)print_subset(n, i); }}
阅读全文
0 0
- 二进制输出所有的子集
- 输出集合的所有子集
- 运用二进制生成集合的所有子集
- 输出集合所有子集的算法
- 输出一个集合所有的子集合
- 输出一个集合的所有子集
- 输出集合所有子集的算法
- 输出一个集合的所有子集合
- 算法篇:输出集合的所有子集
- 输出一个集合的所有子集
- 求一个集合的所有子集(二进制实现)
- 子集的二进制算法
- 取一个字符串的所有子集合并打印输出
- 输出一个集合的所有子集(算法)
- hdu 2062 输出第几个子集的所有元素
- 使用递归函数,输出n个元素的所有子集
- 输出一个集合的所有子集(算法)
- 输出一个集合的所有子集(算法)
- ARM原子操作atomic_add详解
- jquery easyui dialog不超出父容器以及随浏览器缩放
- spring+springMVC+hibernate 三大框架整合
- seq2seq里的 attention机制 的 原理 及 代码 及 个人理解
- js随机设置8位密码
- 二进制输出所有的子集
- 欢迎使用CSDN-markdown编辑器
- logback配置日志
- Python练习-0701
- HDU 4283 You Are the One (区间dp)
- Java实现AES加密解密
- 解决qt提示:qt.network.ssl: QSslSocket: cannot call unresolved function DH_free和qt.network.ssl: QSslSocke
- Java开发中的23种设计模式--单例
- 第九章 汇总数据