Dilworth

Dilworth

定理

偏序集能划分成的最少的全序集个数等于最大反链的大小

名词解释

偏序

在集合 S 中定义的二元关系 ,如果它满足以下三个性质:

  1. 自反性xSxx
  2. 反对称性x,yS,若 xy,yx,则有 x=y
  3. 传递性x,y,zS,若 xy,yz,则有 xz

则称 S 中的一个偏序关系,(S,) 为一个偏序集。

全序集

对于定义在集合 S 上的偏序关系 ,若集合 T 满足 TS,且 x,yTxy 或者 yx 成立,则称 (T,) 为一个全序集。

换句话说,全序集就是不包含两个不可比元素的集合。

反链

反链的定义恰恰与全序集相反。

对于定义在集合 S 上的偏序关系 ,若集合 T 满足 TS,且 x,yTxyyx 都不成立,则称 (T,) 为一个全序集。

换句话说,反链就是元素两两不可比的集合。

证明

不会,略。以后补。

应用情形

一般多元组集合

考虑最简单的二元组,那么得到的结论就是:导弹拦截可以用最长上升子序列求解。

图论模型

考虑定义 uv 当且仅当 u 可以到达 v。对于一个 DAG,发现 是定义在点集 V 上的偏序关系,那么就有最小路径覆盖等于图上最长反链。在某些题目中,这个定理可以将网络流改为贪心,例如网络流 24 题中的魔术球。

这里附上魔术球的做题记录:

n 个容器,从 1 开始往容器里放数,要求放的容器为空,或者放的数和容器里上一个放的数的和是完全平方数。问最多能放到多少,并构造方案。

n55

首先,答案必然递增。那么可以二分。如何判断是否可行?发现是最小路径覆盖。同一原理的另一种做法是不二分,每次加入一个点,然后继续跑一次网络流(不清空),第一次遇到容器不够的情况时退出。理论复杂度前者优,实际上后者常数很小。另一种思路是贪心,贪心地加入,能加就加,不能加就开新容器。正确性可以证明,利用 Dilworth 定理之类的东西。感性理解的话可以看作某个程度上的模拟网络流。

posted @   Diwanul  阅读(74)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示