偏序关系
先介绍一些形式上的定义。
定义一个作用在集合 S S S 上的二元关系 ≤ \leq ≤(并不是指小于等于,但是用这个符号比较形象,因为 ≤ \leq ≤ 自身就是广泛满足偏序关系的),若 S S S 满足:
- 自反性: 对于任意 x ∈ S x\in S x∈S,有 x ≤ x x\leq x x≤x。
- 反对称性: 如果有 x ≤ y , y ≤ x x\leq y,y\leq x x≤y,y≤x,那么有 x = y x=y x=y。
- 传递性: 如果有 x ≤ y , y ≤ z x\leq y,y\leq z x≤y,y≤z,那么有 x ≤ z x\leq z x≤z。
则称 ≤ \leq ≤ 为 S S S 上的偏序关系。
最小元: 对于 x x x 而言,若对于任意 y ≤ x y\leq x y≤x,都满足 y = x y=x y=x,那么 x x x 就是一个最小元。
可比较: 对于两个元素 x , y x,y x,y,若有 x ≤ y x\leq y x≤y 或 y ≤ x y\leq x y≤x,那么称他们可比较。
全序关系: 若集合内任意两个元素都可比较,那么称 ≤ \leq ≤ 是 S S S 上的全序关系。举个例子, ≤ \leq ≤(这里指小于等于)在 Z Z Z(整数集)上就是全序关系,而 ≤ \leq ≤ 在复数域上就是偏序关系。
链: 一个偏序集合中的一个全序子集,又被称为链,即满足任意两个元素都可比较
的子集。
反链: 类似的,即满足任意两个元素都不可比较
的子集。
Dilworth定理
这是一个对偶定理,也就是说有两条:
- 定理1: 其最长链中元素的数目必等于其最小反链划分(即将集合划分为最少的反链)中反链的数目。
- 定理2: 其最长反链中元素的数目必等于其最小链划分中链的数目。
证明其实也很容易理解,先证明定理 1 1 1:
设 r r r 为最长链的元素数目, k k k 为最小反链划分中反链的数目。
分两部分证明,先证明 k ≥ r k\geq r k≥r,然后证明 k ≤ r k\leq r k≤r,最后由此得到 r = k r=k r=k。
由于最长链中的元素两两不能在同一反链中,所以反链数目至少为 r r r,即 k ≥ r k\geq r k≥r。
设 A 1 = S A_1=S A1=S,将 A 1 A_1 A1 中所有最小元取出得到 a 1 a_1 a1,将 a 1 a_1 a1 从 A 1 A_1 A1 中删掉得到 A 2 A_2 A2,反复操作得到 2 n 2n 2n 个集合,即 A 1 A_1 A1 ~ A n A_n An 和 a 1 a_1 a1 ~ a n a_n an,不难发现 a 1 a_1 a1 ~ a n a_n an 是一个反链划分。
不难取出一个长度为 n n n 的链 c 1 c_1 c1 ~ c n c_n cn,其中 , c i ∈ a i c_i\in a_i ci∈ai。由于最长链长度为 r r r,所以有 r ≥ n r\geq n r≥n,又由于反链划分最少为 k k k,所以又有 k ≤ n k\leq n k≤n,所以有 k ≤ r k\leq r k≤r。
证毕。 定理 2 2 2 证明类似,不赘述了。
应用
我们早就见过的 导弹拦截 就是经典应用。
若拦截了 i i i 之后可以拦截 j j j,那么需要满足偏序关系: i < j , a i ≥ a j i<j,a_i\geq a_j i<j,ai≥aj。第一问就是求最长链长度,随便dp即可,第二问要求最小链划分数目,这就等于最大反链划分数目,即最长上升子序列。
还有很多题可以上网搜到,这里也提供一题:[Poi1998]Flat broken lines。