集合 —— 集合与集合运算

【概述】

集合,是集合论中主要研究对象,是指具有某种特定性质的具体的或抽象的对象汇总而成的集体,其中,构成集合的这些对象则称为该集合的元素。

集合中元素的数目称为集合的基数,集合 A 的基数记作:card(A),当其为有限大时,集合 A 称为有限集,反之则为无限集,简单来说,含有有限个元素的集合叫做有限集,含无限个元素的集合叫做无限集。

一个集合具有三个特性:确定性、互异性、无序性。其中,确定性是指给定一个元素其在集合中是否存在是确定的,互异性是指一个集合中任何两个元素都是不同的,无序性是指一个集合中元素间是无序的。

在 STL 中,利用 set 和 multiset 容器可以快速的解决集合问题,关于 set 与 multiset:点击这里

【集合分类】

1.全集与子集

如果一个集合含有所研究问题中涉及的所有元素,那么就称这个集合为全集,记作:U

设 S、T 是两个集合,如果 S 的所有元素都属于 T,则称 S 是 T 的子集,记为:

显然,对于一个集合自身与空集有:

如果 S 是 T 的一个子集,但在 T 中存在一个元素 x 不属于 S,即:,则称 S 是 T 的一个真子集

2.空集

空集是特殊的集合,其不包含任何元素,记为:∅

其有 2 个特点:

  • 空集是任意一个非空集合的真子集
  • 空集是任何一个集合的子集

3.交并集

交集是由属于 A 且属于 B 的相同元素组成的集合,记作:A∩B

并集是由属于集合 A 或属于集合 B 的所有元素所组成的集合,记作:A∪B

5.补集

补集分为相对补集和绝对补集:

  • 由属于 A 而不属于 B 的元素组成的集合,称为 B 关于 A 的相对补集,记作:A-B 或 A\B
  • A 关于全集合 U 的相对补集称作 A 的绝对补集,记作:A' 或 Cu(A) 或 ~A

6.幂集

对于一个集合 A,其所有子集组成的集合,称为集合 A 的幂集

性质:有限集 A 的幂集的基数等于 2 的有限集 A 的基数次幂。

7.相等集合

如果两个集合 S 和 T 的元素完全相同,则称 S 与 T 两个集合相等,记为:S=T

有:

【集合运算】

对于两个集合 A、B 存在以下运算:

  • 交换律:A∩B=B∩A、A∪B=B∪A
  • 结合律:A∪(B∪C)=(A∪B)∪C、A∩(B∩C)=(A∩B)∩C
  • 分配对偶律:A∩(B∪C)=(A∩B)∪(A∩C)、A∪(B∩C)=(A∪B)∩(A∪C)
  • 对偶律:(A∪B)^C=A^C∩B^C、(A∩B)^C=A^C∪B^C
  • 同一律:A∪∅=A、A∩U=A
  • 求补律:A∪A'=U、A∩A'=∅
  • 对合律:A''=A
  • 等幂律:A∪A=A、A∩A=A
  • 零一律:A∪U=U、A∩∅=∅
  • 吸收律:A∪(A∩B)=A、A∩(A∪B)=A
  • 德·摩根律:(A∪B)'=A'∩B'、(A∩B)'=A'∪B'
  • 容斥原理:card(A∪B)=card(A)+card(B)-card(A∩B)
                      card(A∪B∪C)=card(A)+card(B)+card(C)-card(A∩B)-card(B∩C)-card(C∩A)+card(A∩B∩C)

利用 bitset 表示集合时,由于二进制位运算的特点,当两个集合 A、B 逐位进行位运算 A&B、A|B、A^B 时,分别对应两个集合的交集、并集、对称差集

此外,当全为 0 时,表示空集;当全为 1 时,表示全集,即 allBits=(1<<n)-1,那么,对于集合 A 的补集为:allBits^A

关于 bitset:点击这里

【例题】

  1. Equalize the Remainders(CF-999D)(set+模拟)点击这里
  2. 找连续数(HDU-5247)(set+打表)点击这里
  3. 矩阵中不重复的元素(51Nod-1024)(set+暴力)点击这里
  4. The Brand New Function(CF-224C)(set+暴力)点击这里
  5. Colorful Graph(CF-246D)(set+暴力)点击这里
  6. Make a Rectangle(Atcoder-2696)(multiset+优先队列)点击这里
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值