zoukankan      html  css  js  c++  java
  • Dilworth 定理的一个简单证明

    Dilworth 定理:对于任意有限偏序集,其最长反链中元素的数目必等于最小链覆盖中链的数目
    容易发现偏序集中的偏序关系等价于单向边,偏序集形成的图是 DAG
    对于一个 $ n $ 个点的偏序集形成的 DAG 求最小链覆盖可以用二分图匹配解决
    将第 $ i $ 个点拆成 $ i $ 和 $ i + n $ 两个点,如果 DAG 中存在 $ i $ 连向 $ j $ 的边,就在二分图内添加 $ i + n $ 和 $ j $ 之间的连边
    设二分图的最大匹配为 $ m $,则最小链覆盖为 $ n - m $,相当于选出尽可能少的路径终点
    容易发现同一条链中的点不能同时存在于反链中,所以最长反链的上界是 $ n - m $
    如果 $ i $ 和 $ i + n $ 都在最大独立集中就将 $ i $ 加入反链中,由于最大独立集大小为 $ 2n - m $,此时找到的反链长度的下界是 $ n - m $
    因此最长反链长度为 $ n - m $,即为最小链覆盖中链的数目

  • 相关阅读:
    ARC 117 D
    Maven依赖踩坑记录
    MobaXterm连接本地CentOS7
    Git在IDEA下的常用操作
    mq消息中间件
    nginx的作用
    Git的使用
    docker
    redis
    导出excel
  • 原文地址:https://www.cnblogs.com/LJC00118/p/13689089.html
Copyright © 2011-2022 走看看