序理论

偏序集合

一个集合 P 内的 满足偏序则 P偏序集合

为偏序则其具有 自反性反对称性递移性 ,即对于 a,b,cP ,满足:

  1. aa
  2. 如果 abba ,那么 a=b
  3. 如果 abbc ,那么 ac

a,bP,abba 成立时, 集合 P 称为 全序集合(或者链)。

打个比方,实数集合就是一个全序集合,以及一个以整除关系定义 的某个有限整数集合是个偏序集合。

实际上偏序关系可以建成拓扑图,所以全序集合叫链(虽然图上是完全图,但是可以通过链来完全表示偏序关系)。如果偏序集中不存在任何可比的两个元素,我们称之为 反链 。表现在图上为多个单点。

一些概念

对于偏序集合 P

大与小是一个正好相反的概念,就不多赘述。

最小元素 :满足 xP,mx ,则 m 为最小元素。

极小元素:拓扑图末端元素。满足 xPxmx=m 成立,则 m 为极小元素。

打个比方,对于以整除关系定义 的集合 S={2,3,4,5,6} ,有极小元素 2,3,5 和极大元素 4,5,6

Dilworth定理

偏序集能划分成的最少的全序集的个数等于其最大反链的元素个数。

即:

最小链覆盖=最长反链长度

最小反链覆盖=最长链长度

证明:

结论的话画画图就知道了,比较显然。n 个互相没有偏序关系的点至少要用 n 个全序集合才能囊括,由于 n 是最长反链长度,那么此时使用这 n 个全序集合已经覆盖全图,即为最小链覆盖。

第二个结论只需要每条链上拿出一个放到一个反链,一直放直到放完,这样保证了每次覆盖的数量尽可能多。

一些应用

导弹拦截

经典题,第一问就是最长不增子序列,第二问要求最少将序列划分为多少个非递增序列。我们考虑怎么搞第二问。

我们刚证明了最小链覆盖=最长反链覆盖。我们对于 建立拓扑图,那么找到最长上升子序列就是最长反链。只需要求最长上升子序列即可。

String Coloring

求最小不降子序列覆盖及其方案。转换成求最长下降子序列覆盖。然后考虑如何构造方案。也简单,直接就是以当前字符为结尾的最长下降子序列长度即可。

bzoj1143 祭祀

直接找最长反链长度=最小链覆盖。用 floyd 跑一下把拓扑图补成偏序关系图。然后直接二分图匹配即可。

posted @   cbdsopa  阅读(249)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示