当前位置: 首页 > news >正文

最小链覆盖 - Dilworth 定理 小记

最小链覆盖 - Dilworth 定理 小记

内容 & 证明

Dilworth定理,一言以蔽之,偏序集能划分成的最少的全序集个数等于最大反链的元素个数。——litble。

即最小链覆盖数等于最长反链的长度。

例子:求一个序列最少划分成多少个最长不下降子序列,等价于求序列的最长下降子序列长度。

不严谨证明(仅讨论二维偏序):

假设最小链覆盖等于 \(N\),最大反链等于 \(M\)

证明 \(N\ge M\):最大反链中任意两个点都是不可比的,因此反链上每个点都各属于不同的链覆盖中,则 \(N\ge M\)

证明 \(N\le M\):求出每个点开始的最长反链长度 \(f(x)\),我们按 \(f(x)\) 相同的点分层。可以知道同一层的任意两个点都是可比的,不然如果存在同一层两个点 \(x,y\) 不可比,则 \(f(x)\gets f(y)+1\),则与同一层矛盾。于是,同一层的点可以划分为一个链覆盖, 于是 \(N\le M\)

例题 1:P3974 [TJOI2015] 组合数学 - 洛谷

网格图路径可以看做选一条不上升子序列,要求选出最少的不上升子序列使得覆盖所有点。

利用 Dilworth 定理转化为求最长上升子序列。

例题 2:P14394 [JOISC 2016] 俄罗斯套娃 / Matryoshka - 洛谷

开始读错题了,始终不会算,注意:

其中所有底面直径不小于 A cm 且高度不超过 B cm 的套娃将提前交付。

所以每次加入一层 \(y\),然后用树状数组维护每个点开始的 LDS 即可。

例题 3:P10938 Vani和Cl2捉迷藏 - 洛谷

题目即要求最长反链,转化为求最小链覆盖(注意这里的链是一个点集而不是路径)。

用 Floyd 跑一次传递闭包转化为最小路径覆盖。

至于最小路径覆盖就是考虑 \(u\to v\) 化成二分图上的左部点 \(u\) 向右部点 \(v\) 连一条边,一开始每个点单独成路径,每次二分图上匹配一条边就表示两点所在路径首尾相连,于是最小路径覆盖就等于点数减去最大匹配

http://www.jsqmd.com/news/53301/

相关文章:

  • 我研发了一款电影截图拼接神器:Eagle 插件让你的影片收藏更专业
  • 有种人
  • memset 破坏string
  • 关于字符串的小记
  • [NOIP2024] 编辑字符串-题解
  • 机器人设备端AI技术实现突破
  • 11月27日日记
  • 信创环境 海光7455D+深信服超融合+阿里龙晰8.6 虚拟机扩容方法 - yi
  • 251127今天是学习的一天
  • 三菱Q/西门子S7-300 PLC互联Modbus TCP 转 Modbus RTU工业网关
  • 基于Java+SSM+Flask宠物综合服务平台(源码+LW+调试文档+讲解等)/宠物服务/宠物商城/宠物用品/宠物医疗/宠物美容/宠物寄养/宠物保险/宠物社区/宠物咨询/宠物培训 - 指南
  • 金融科技中网络安全的关键作用
  • 否定之否定的辩证法,谁会不承认?但又有多少人说的透?
  • Windows Update - Part 5: Timeline [discarded draft]
  • wechatapi-微信号二次开发
  • 2025年12月最新最全的AI搜索优化公司与GEO优化公司排行榜:8大国内头部Top级GEO服务商深度解析与AIEO推荐指南
  • CVE-2022-26271
  • MySQL性能分析(六)之Performance Schema监控SQL性能
  • js控制并发请求
  • Windows Update - Part 2: Update Package - Appendix
  • Azure app service 和 Azure container app 的对比以及技术选型
  • Nestjs框架: 微服务与分布式架构解析之核心概念、应用场景与技术挑战 - 指南
  • 嗯欧哀批2025有机 - Gon
  • GitPulse:让代码的故事自己讲述
  • 图书馆管理系统Alpha阶段Scrum冲刺博客 Day1
  • 工具-一套键鼠控制两台电脑
  • 企业微信HTTP协议调用,逆向开发,本地化部署
  • 20251127周四日记
  • 【第一周:Python 测试开发核心错题集 避坑指南】
  • 空间够造+花钱够省!红旗HS6霸榜家用大五座混动推荐