http://vfleaking.blog.163.com/blog/static/1748076342012918105514527/大前提:在有向无环图中链是一个点的集合,这个集合中任意两个元素v、u,要么v能走到u,要么u能走到v。反链是一个点的集合,这个集合中任意两点谁也不能走到谁。最长反链是反链中最长的那个。那么最长反链怎么求呢?另一个东西叫:最小链覆盖。就是用最少的链,经过所有的点至少一次(为什么不叫最少链覆盖啊囧……)于是啥啥定理来了:最长反链长度 = 最小链覆盖数下面来证明:首先,最长反链中的每个点,一定在不同的链中,所以得到:最长反链长度 ≤ 最小链覆盖数下面关心的是,最长反链长度 ≥ 最小链覆盖数吗?用数学归纳法。首先空的图显然成立。假设对于所有点数小于图G的图都成立,现在来证G也满足条件。两个定义:源:没有一个点能走到它的点。(入度为0) 汇:不能走到任何一个点的点。(出度为0)设:这个图点集为V这个图的最长反链为A能走到A中某个点的点的集合为B,A中某个点能走到的点构成的集合为C。(1)若A中至少有一个点既不是源也不是汇 则: 1. B ≠ V (否则反链的点全是汇) 2. C ≠ V (否则反链的点全是源) 3. B ∪ C = V:反证法,假设有一个点v既不属于B也不属于C,那么说明反链上任何一点不能到v,v也不能到反链上任何一个点,反链加上v之后能成为更长的反链,与假设矛盾。 4. B ∩ C = A:反证法,假设有一个点v既属于B也属于C但不属于A,那么说明反链上某点a能到v,v能到反链上某点b。若a = b,则与图是有向无环图矛盾。若a ≠ b,则a能先到v,在从v到达b,与a、b都在反链上矛盾。 设B构成的子图、C构成的子图的最小链覆盖的链的集合分别为C[B]和C[C]。因为|B| < |V|,|C| < |V|,由归纳假设,C[B]、C[C]大小分别等于B构成的子图和C构成的子图的最长反链的大小。 考虑一条链c ∈ C[B],则c中必然存在一个在最长反链上的点v,不然最小链覆盖会大于最长反链,与归纳假设矛盾。因为B ∩ C = A,所以C[B]中v不能到任何一个点。所以v必为c的汇。 于是得到:A中的点都是C[B]中某条链的汇。 同理:A中的点都是C[C]中某条链的源。 又B ∪ C = V,B ∩ C = A,C[B]中某条链的汇必为C[C]中某条链的源,于是把C[B]和C[C]拼起来,就得到一个原图G的一种可行的链覆盖了! 考虑这个链覆盖,发现这个链覆盖大小 = 最长反链长度,得到最小链覆盖大小 ≤ 最长反链长度。又由前面的最小链覆盖大小 ≥ 最长反链长度,所以G中最小链覆盖大小 = 最长反链长度(2)若A是所有源的集合或所有汇的集合 若A是所有源的集合,那么从A中随便取一个元素v(这个可以随便找到吧) 再从V中随便找一个汇u,使得v可以到u(这个也可以随便找到吧)(u可以等于v) 然后G中去掉v、u形成图G'。则G'的最长反链大小一定小于等于|A| - 1,不然的就可以在G中找到一条不选v、u的最长反链,利用(1)的结论可以证明正确性。 由于归纳假设,则G'中一定可以找到一个数量为|A| - 1的链覆盖。再加上{v} ∪ {u}这条链,则可以在G中找到一个数量为|A|的链覆盖,所以G的最小链覆盖 ≤ 最长反链长度。 又由前面的最小链覆盖大小 ≥ 最长反链长度,所以G中最小链覆盖大小 = 最长反链长度。证完了,这就是传说中的Dilworth定理:最小链覆盖数 = 最长反链长度。其对偶定理:最长链长度 = 最小反链覆盖数 就不证了,网上的证明烂大街了。那么求最小链覆盖数的方法,就是首先传递闭包,然后就变成了最小路径覆盖。拆点,用二分图匹配解决之。这是后话,不说了。

BZOJ 1143 祭祀river 最长反链相关推荐

  1. BZOJ 1143 祭祀 river(最大独立集)

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1143 题意:给出一个有向无环图.在其中找出一个最大的点集使得点集中任意两个点之间不可达. ...

  2. BZOJ 1143 祭祀

    Description 在遥远的东方,有一个神秘的民族,自称Y族.他们世代居住在水面上,奉龙王为神.每逢重大庆典, Y族都会在水面上举办盛大的祭祀活动.我们可以把Y族居住地水系看成一个由岔口和河道组成 ...

  3. 最长反链(bzoj 1143: [CTSC2008]祭祀river)

    题目描述: 给你一个n个点m条边的有向无环图,求出最大点集满足其中任意两点间都不能存在路径 也就是对于所有的x, y∈S,x不能到达y,y也不能到达x 对于有向无环图(DAG): 链:一些点的集合,链 ...

  4. bzoj 1143 bzoj 2718 最长反链

    题意:n个点,m条有向边,求最长反链 又到了涨姿势的时候了...(果然蒟蒻) DAG中,有如下的一些定义和性质: 链:一条链是一些点的集合,链上任意两个点x, y,满足要么 x 能到达 y ,要么 y ...

  5. [bzoj1143][CTSC2008]祭祀river——DAG上最长反链,Dilworth定理,最大二分图匹配,Floyd

    题目大意: 给定一个DAG图,求最长反链(即一个点集,其中任意点两两不可以相互到达). 思路: 一开始我其实是想用求最大独立集的方法去求的.但是并不会(好像也过不去). 题目所要求的是最长反链,需要用 ...

  6. 1143: [CTSC2008]祭祀river

    Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 4018  Solved: 2048 [Submit][Status][Discuss] Descri ...

  7. BZOJ.1143.[CTSC2008]祭祀(Dilworth定理 最大流ISAP)

    题目链接 题目是求最长反链,反链指点集内任意两点不能互相到达. 根据Dilworth定理,在DAG中,\[最长反链 = 最小路径覆盖 = V - 最大匹配数\] 用Floyd求一遍传递闭包后,在所有可 ...

  8. bzoj1143[CTSC2008]祭祀river

    bzoj1143[CTSC2008]祭祀river 题意: Y族居住地水系是一个由岔口和河道组成的网络.每条河道连接着两个岔口,并且水在河道内按照一个固定的方向流动.水系中不会有环流.由于人数众多的原 ...

  9. BZOJ1143[CTSC2008]祭祀river 偏序集及Dilworth定理

    这里讲一下我对偏序集的认识   如果有偏差可以评论我  我会修改 一:定义 (度娘上copy来的  不想看的可以跳过 设R是非空集合A上的一个二元关系,若R满足: 自反性.反对称性.传递性,则称R为A ...

最新文章

  1. 福大计算机国二,福大学子喜获中国大学生计算机设计大赛二三等奖
  2. 扩增子分析解读4去嵌合体,非细菌序列,生成代表性序列和OTU表
  3. Flink JAR包上传和运行逻辑
  4. Gartner:2019年七大AI科技趋势,百万行业将颠覆!
  5. 邓侃:深度强化学习“深”在哪里?
  6. 微服务架构编码构建 环境配置 热部署配置
  7. Ubuntu 下一个 vim 建立python 周围环境 构造
  8. 华为服务器如何修改ftp密码,ftp怎么改服务器密码
  9. 流量复制_详解Linux系统流量复制--gor、tcpcopy、nginx模块流量复制等
  10. AngularJS基础入门初探
  11. 学习日志(一)安装PySide2遇到的问题及其解决办法
  12. c++模板类_在 MCU 上使用 C++ 之模板类进阶与线性 Kalman 算法代码
  13. 计算机编程php网页源码水果网上销售系统mysql数据库web结构html布局
  14. 12月编程语言排行榜出炉
  15. 华为服务器系统日志,服务器操作系统日志
  16. 电脑显示器连接主机 没反应 no signal!!
  17. mac 安装selenium 教程
  18. HtmlUnit的入门教程整理
  19. J2V8 -- 开始使用J2V8
  20. spark基础知识学习

热门文章

  1. 最好的编程语言(如何不再担忧,爱上代码)
  2. JDBC 中 CreateStatement 和 PrepareStatement 的区别
  3. Sonar中的技术债务简要了解
  4. 小猫爪:PMSM之FOC控制14-基于EKF实现FOC无传感器双闭环
  5. 基于支持向量机的机械零件剩余寿命区间估计
  6. Encoder-Decoder模型学习中(更新中)
  7. 如何下载阿里妈妈订单EXCEL(cookie保持)
  8. 知道吗?你们求的这些网站占据了互联网流量的30%甚至更高(科普贴)
  9. SEO之红海战略和蓝海战略
  10. 转:如何激活window 7 如何验证windows7是否正版