acm中的二进制操作(未完成)

来源:互联网 发布:矩阵的计算方法 编辑:程序博客网 时间:2024/06/09 21:59

参考博客:
https://wenku.baidu.com/view/88d9899cf12d2af90242e6bf.html

http://blog.csdn.net/a409082492/article/details/47083917
http://blog.csdn.net/t6_17/article/details/51504695

bitset
定义bitset<1000>a;
a[1] = 1,a[3] = 1,a[5] = 1;
代表a包含了1,3,5
此时相当于用一个整数代表集合,此时对整数a进行a&(1<<1),a&(1<<3),a&(1<<5)得到的结果都是1

集合整体移位操作
a = a<<1;
代表a包含了2,4,6;
一个例子:
http://blog.csdn.net/stary_yan/article/details/51463345

用整数表示集合的方法见这篇博客:
http://blog.csdn.net/tlonline/article/details/47255923
在程序中表示集合的方法有很多种,当元素比较少时,像这样,用二进制码来表示比较方便。集合{0,1,2…n-1}的子集可以用以下方式编码成整数。
这里写图片描述
这样表示以后,一些集合还可以对应写成如下方式:

空集………………………..0
只含有第i个元素的集合{i}…………1<

原创粉丝点击