《算法竞赛入门经典》-7.3-子集生成
来源:互联网 发布:linux 限制用户登录 编辑:程序博客网 时间:2024/05/17 12:06
一.二进制法:
①表示{0,1,2,……,n - 1}的子集S
②为了处理方便,最右边的位总是对应元素0,而不是元素1
③与、或和异或都满足交换律:
A & B = B & A
A | B = B | A
A ^ B = B ^ A
④A & B,A | B,A ^ B分别对应集合的交、并和对称差
⑤为了方便,往往在程序中把全集定义成u_set = (1 << n) - 1,则A的补集就是u _set ^ A
代码实现:
int n,a[101];//n为元素个数void print_subset(int s)//s代表着一个子集{ for(int i = 0; i <= n - 1; ++i) if(s & (1 << i))//如果s的第i位(从0开始数)上是1 printf("%d ",a[i]);//打印 printf("\n");}int main(){ //输入 cin >> n; for(int i = 0; i <= n - 1; ++i) scanf("%d",&a[i]); for(int i = 0; i <= (1 << n) - 1; ++i) print_subset(i);//打印每个子集 return 0;}
阅读全文
0 0
- 《算法竞赛入门经典》-7.3-子集生成
- 算法竞赛入门经典读书笔记(四)7.3子集生成
- 读《算法竞赛入门经典》 7.3子集生成
- 算法竞赛入门经典读书笔记(四)7.3子集生成
- 《算法竞赛入门经典》-【第七章:暴力求解法】-7.3:子集生成
- 【算法竞赛入门经典】7.3子集生成【增量构造法】【位向量法】【二进制法】
- 算法入门经典7.3子集声生成
- 子集生成--《算法入门经典》
- 算法竞赛入门经典:第七章 暴力求解法 7.8子集生成
- 关于算法竞赛入门经典一书的思考学习——枚举排序和子集生成!
- 算法竞赛入门经典
- 算法竞赛入门经典
- 算法竞赛入门经典心得
- 《算法竞赛入门经典》勘误表
- 算法竞赛入门经典读书笔记
- #《算法竞赛入门经典》勘误
- 算法竞赛入门经典2
- 算法竞赛入门经典 exe_2
- 单例模式的缺陷(以php为例)
- 类型之间的转换
- BZOJ 1688 Disease Manangement 疾病管理 -状压dp
- Python 读书笔记(1)
- python list常用方法
- 《算法竞赛入门经典》-7.3-子集生成
- bzoj2653middle 主席树+二分答案
- SpringMvc处理请求流程
- ES6的module语法--export
- POJ 2385 Apple Catching
- [SCOI2007] BZOJ 1072 排列perm
- IO系列
- php基本语句
- Sample Clock Based On UWP