博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
竞赛准备篇---(四)子集生成
阅读量:7033 次
发布时间:2019-06-28

本文共 508 字,大约阅读时间需要 1 分钟。

二进制枚举

  用n位二进制数表示一个集合的状态,全部为1表示全集,全部为0表示空集,比如集合{0, 1,2,3};那我就可以用数字0-15的来表示集合的各个子集,用二进制从右往左数的第i为表示集合中第i个元素的状态。

数字 二进制 集合
0 0000 空集
1 0001 0
2 0010 1
3 0011 0,1
4 0100 2
5 0101 0,2
6 0110 1,2
7 0111 0,1,2
8 1000 3
9 1001 0,3
10 1010 1,3
11 1011 0,1,3
12 1100 2,3
13 1101 0,2,3
14 1110 1,2,3
15 1111

0,1,2,3

 

 

1 void print_subset(int n, int s) 2 { 3     for(int i = 0; i < n; i++) 4         if(s&(1<

 这里用整数表示集合

集合A,B相交:A&B(二进制的&运算就可以直接完成)

集合A,B相并:A|B

集合A,B的对称差:A^B

转载于:https://www.cnblogs.com/fzl194/p/8668817.html

你可能感兴趣的文章
EOSIO 指南(启动你的节点并设置)
查看>>
一文带你看懂cookie,面试前端不用愁
查看>>
Electron + Antd + Mobx 环境搭建
查看>>
我从来不理解JavaScript闭包,直到有人这样向我解释它...
查看>>
在CentOS7上安装RabbitMQ
查看>>
作为大众熟知的电商应用,京东如何构建风控体系架构?
查看>>
js运行机制及异步编程(二)
查看>>
typescript文档化工具——Typedoc
查看>>
JS数据结构0x004:链表
查看>>
以太坊钱包开发系列1 - 创建钱包账号
查看>>
社交系统 ThinkSNS+ V2.1.1 更新播报
查看>>
理解CPU分支预测,提高代码效率
查看>>
javascript调试接口
查看>>
Python基础系列:初识python引用计数与弱引用
查看>>
javascript继承方法以及优缺点
查看>>
tab 切换下划线跟随实现
查看>>
20+个很棒的Android开源项目
查看>>
跨域、vue双向绑定相关面试题
查看>>
Web Components(一)入门
查看>>
mpvue打包没有app.json等配置文件的解决方法
查看>>