Dilworth定理
偏序关系
设RRR是集合AAA的一个二元关系,若RRR满足:
1.自反性:∀x∈A\forall x \in A∀x∈A,有xRxxRxxRx
2.反对称性:∀x,y∈A\forall x,y \in A∀x,y∈A,若xRy,yRxxRy,yRxxRy,yRx,则x=yx=yx=y
3.传递性:∀x,y,z∈A\forall x,y,z\in A∀x,y,z∈A,若xRy,yRzxRy,yRzxRy,yRz,则xRzxRzxRz
则称RRR为AAA上的偏序关系,通常记作⪯\preceq⪯
偏序集
偏序集合(Partially ordered set,Poset)是数学中,特别是序理论中,指配备了偏序关系的集合
链
设若干元素构成一个集合,那么这个集合是链当且仅当这个集合的所有元素两两可比
反链
对一个集合,它是反链当且仅当这个集合里的元素两两不可比
极大元
设偏序集AAA,x∈Ax\in Ax∈A,∄y∈A,x≠y,s.t.x⪯y\not\exists y\in A,x\neq y, s.t.\ x\preceq y∃y∈A,x=y,s.t. x⪯y,则xxx为极大元
Dilworth定理
设PPP是一个有限的偏序集,则
min{m∣∃链C1,C2,⋯,Cm,P=∪i=1mCi}=max{∣A∣:A是反链}\min\left\{m|\exists 链C_1,C_2,\cdots,C_m,P = \cup_{i=1}^{m}C_i\right\}=\max\left\{\left|A\right|:A是反链\right\} min{m∣∃链C1,C2,⋯,Cm,P=∪i=1mCi}=max{∣A∣:A是反链}
偏序集能划分成的最少的链的个数与最大反链的元素个数相等
证明:
首先证明max{∣A∣}≤min{m}\max\left\{\left|A\right|\right\}\le \min\left\{m\right\}max{∣A∣}≤min{m}
假设max{∣A∣}>min{m}\max\left\{\left|A\right|\right\}> \min\left\{m\right\}max{∣A∣}>min{m}
存在∃x,y∈A,s.t.x,y∈Ci\exists x,y \in A,s.t.\ x,y\in C_i∃x,y∈A,s.t. x,y∈Ci
说明x,yx,yx,y是可比的,与反链定义矛盾
同时我们也可以得出∣Ci∩A∣=1\left|C_i\cap A\right| = 1∣Ci∩A∣=1
接着我们对∣P∣\left|P\right|∣P∣进行归纳,来证明可以取等
当∣P∣=0,1\left|P\right| = 0,1∣P∣=0,1时,显然成立
假设∣P∣=k\left|P\right| = k∣P∣=k时成立
当∣P∣=k+1\left|P\right| = k + 1∣P∣=k+1时
设最大反链长度是mmm
最长的链是C={x1,x2,⋯,xp}C=\left\{x_1,x_2,\cdots, x_p\right\}C={x1,x2,⋯,xp},满足x1⪯x2⪯⋯⪯xpx_1 \preceq x_2\preceq \cdots \preceq x_px1⪯x2⪯⋯⪯xp
换句话说我们不能再往CCC中增加元素,也可以得出xpx_pxp是极大元
接下来分类讨论
当P\CP\backslash CP\C的每一条反链都的元素个数≤m−1\le m-1≤m−1
由于∣P\C∣<k\left|P\backslash C\right| <k∣P\C∣<k,由归纳P\CP\backslash CP\C可以划分为m−1m-1m−1个链,即P\C=∪i=1mCiP\backslash C = \cup_{i=1}^{m}C_iP\C=∪i=1mCi
那么PPP可以划分为P=C∪∪i=1mCiP = C\cup \cup_{i=1}^{m}C_iP=C∪∪i=1mCi,结论成立
当P\CP\backslash CP\C中存在反链A={a1,a2,⋯,am}A = \left\{a_1,a_2,\cdots,a_m\right\}A={a1,a2,⋯,am}时
令
P−={x∈P∣∃i,x⪯ai}P+={x∈P∣∃i,ai⪯x}P^{-} = \left\{x\in P\mid \exists i ,x \preceq a_i\right\}\\ P^{+} = \left\{x\in P\mid \exists i ,a_i\preceq x\right\}\\ P−={x∈P∣∃i,x⪯ai}P+={x∈P∣∃i,ai⪯x}
我们可以得出
1.P=P−∪P+P = P^{-} \cup P^{+}P=P−∪P+(否则存在元素与反链中的元素不可比,则这条反链不是最大的,矛盾)
2.P−∩P+=AP^{-}\cap P^{+} = AP−∩P+=A (因为ai⪯aia_i \preceq a_iai⪯ai,所以ai∈P−,ai∈P+a_i \in P^{-},a_i \in P^{+}ai∈P−,ai∈P+)
3.xp∉P−x_p \notin P^{-}xp∈/P−(反则xpx_pxp不是极大元)
AAA是P−P^{-}P−的一条最大反链,由归纳P−P^{-}P−可以划分为mmm条链C1−1,C2−,⋯,Cm−C_1^{-1},C_2^{-},\cdots, C_m^{-}C1−1,C2−,⋯,Cm−
由于∣A∩Ci−∣=1\left|A\cap C_i^{-}\right| = 1A∩Ci−=1,不妨假设ai∈Ci−a_i \in C_i^{-}ai∈Ci−
我们可以得出,aia_iai是Ci−C_i^{-}Ci−的最大元
(否则,不妨假设x∈Ci−x\in C_i^{-}x∈Ci−满足ai⪯xa_i \preceq xai⪯x,由于x∈P−x \in P^{-}x∈P−,∃aj,s.t.x⪯aj(ai≠aj)\exists a_j,s.t.\ x\preceq a_j(a_i\neq a_j)∃aj,s.t. x⪯aj(ai=aj),进而ai⪯x⪯aja_i \preceq x \preceq a_jai⪯x⪯aj,与反链定义矛盾)
同理P+P^{+}P+也可以划分为C1+,C2+,⋯,Cm+C_1^{+},C_2^{+},\cdots,C_m^{+}C1+,C2+,⋯,Cm+,aia_iai是Ci+C_i^+Ci+的极小元
令Ci=Ci−∪Ci+C_i = C_i^{-} \cup C_i^+Ci=Ci−∪Ci+,则PPP可以划分为C1,C2,⋯,CmC_1, C_2,\cdots, C_mC1,C2,⋯,Cm这mmm条链
得证
洛谷P1020
最长不上升子序列
设A=[a1,a2,⋯,an]A= [a_1,a_2,\cdots, a_n]A=[a1,a2,⋯,an]
定义偏序关系ai⪯aj⇔i≤j且ai≥aja_i \preceq a_j \Leftrightarrow i\le j 且 a_i \ge a_jai⪯aj⇔i≤j且ai≥aj(容易验证满足偏序关系)
这个偏序关系就对应了最长不上升序列
最长不上升序列就是在求最长的链
划分最长不上升序列的个数最少为最长上升子序列长度
#include<cstdio>
#include<algorithm>
#include<functional>const int N = 1e5 + 5;int dp1[N];
int dp2[N];int main() {bool flag = false;int t, idx, ans1 = 1, ans2 = 1;while (~scanf("%d", &t)) {if (!flag) {flag = true;dp1[1] = dp2[1] = t;continue;}if (dp1[ans1] >= t) {++ans1;dp1[ans1] = t;}else {int idx = std::upper_bound(dp1 + 1, dp1 + 1 + ans1, t, std::greater<int>()) - dp1;dp1[idx] = t;}if (t > dp2[ans2]) {++ans2;dp2[ans2] = t;}else {int idx = std::lower_bound(dp2 + 1, dp2 + 1 + ans2, t) - dp2;dp2[idx] = t;}}printf("%d\n%d\n", ans1, ans2);return 0;
}
https://www.cnblogs.com/itlqs/p/6636222.html
https://cmwqf.github.io/2019/12/17/%E6%B5%85%E8%B0%88Dilworth%E5%AE%9A%E7%90%86/
https://www.math.cmu.edu/~af1p/Teaching/Combinatorics/F03/Class14.pdf
相关文章:
Dilworth定理
偏序关系 设RRR是集合AAA的一个二元关系,若RRR满足: 1.自反性:∀x∈A\forall x \in A∀x∈A,有xRxxRxxRx 2.反对称性:∀x,y∈A\forall x,y \in A∀x,y∈A,若xRy,yRxxRy,yRxxRy,yRx,则xyxyxy 3.传递性&…...

使用loading动画让你的条件渲染页面更高级
前言在我们做项目的使用常常会使用条件渲染去有选择的给用户展示相关页面,如果渲染的数据或场景比较多比较复杂,那么往往需要3、4s的时间去完成,用户点击了之后就会陷入3、4s的空白期,并且这段时间屏幕是处于一种”未响应“的状态…...

Renegade:基于MPC+Bulletproofs构建的anonymous DEX
1. 引言 白皮书见: Renegade Whitepaper: Protocol Specification, v0.6 开源代码见: https://github.com/renegade-fi/renegade(Renegade p2p网络每个节点的核心网络和密码逻辑)https://github.com/renegade-fi/mpc-bulletpr…...
二、Plugin The chain/event/query function
The chain function 链函数是所有数据处理都在其中进行的函数。在简单过滤器的情况下(本节示例的情况),_chain()函数大多是线性函数——因此对于每个传入的缓冲区,也将输出一个缓冲区。下面是一个非常简单的chain函数的实现: sta…...
了解 PostgreSQL 的扩展查询协议
1.介绍 本篇博客用于解释扩展协议的工作原理以及它与简单查询的区别。 2.简单查询 在PostgreSQL中,客户端连接能够发起两种类型的查询:简单查询和扩展协议查询。 简单查询顾名思义。 当启动 psql 客户端连接到pg服务器时,几乎所有发送的…...
接入网关和隔离网关
文章目录1. 什么是网关?2. 网关的作用是什么?3. 接入网关和隔离网关1. 什么是网关? 网关(Gateway)是一种网络设备,通常用于将不同网络之间的流量进行转发和路由,将一个网络连接到另一个网络&…...

实用指南:如何在Anolis OS上轻松使用 Kata 安全容器?
文/云原生SIG本篇文章我们将详细介绍怎么轻松在 Anolis OS 上使用 Kata Containers 安全容器,我们将介绍 Kata Container 社区于 2022 年 10 月 10 日最新发行的 Kata3.0.0 的安装部署方式,3.0.0 版本包含了基于袋鼠 RunD 开源的最新 Rust Kata runtime …...

如何锁定Word文档部分文字不被修改
我们知道,想要保护Word文档的内容无法随意更改,可以设置“限制编辑”的保护模式。 那如果实际工作中,只需要固定的一部分内容不能编辑,可以实现吗?答案是肯定的,今天就来说说如何设置Word文档部分文字可修…...

聊聊8万8的私董会,很扎心
聊聊8万8的私董会,很扎心 道几句真心话,很扎心,但也很现实。 如果你喜欢刷抖音,这种感觉应该会更加明显。 股市哀鸿遍野,实体一地鸡毛,我们办公室楼下的门面换了一波又一波。 别说那些不起眼的小生意&a…...

卷积网络与全连接网络的区别
问题卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习。卷积神经网络具有表征学习能力,能够按其阶层结构对输入信息进行平移不变分类,因此也被称为“平移不变人工神经网络。全连接神经网络是具有多层感知器的的网络&a…...

【5000左右电脑配置清单】预算不高于5000,不带显示器的电脑配置清单推荐
由于本人是学生党经济有限,预算不高于5000元配一套电脑主机,说实话5000左右的电脑配置已经很好了,今天站长整理了几款配置给大家参考参考,更多电脑配置还请继续关注西安SEO优化站点! 配置1: <CPU> I5…...

在 4G 内存的机器上,申请 8G 内存会怎么样?
在 4GB 物理内存的机器上,申请 8G 内存会怎么样? 这个问题在没有前置条件下,就说出答案就是耍流氓。这个问题要考虑三个前置条件: 操作系统是 32 位的,还是 64 位的?申请完 8G 内存后会不会被使用&#x…...

JavaSE学习day9 集合(基础班结束)
1.ArrayList 集合和数组的优势对比: 长度可变 添加数据的时候不需要考虑索引,默认将数据添加到末尾 不能存基本数据类型。只能通过包装。 1.1ArrayList类概述 什么是集合 提供一种存储空间可变的存储模型,存储的数据容量可以发生改变 Ar…...

Python爬虫进阶 - win和linux下selenium使用代理
目录 Windows selenium配置 下载地址 Chrome Chromedriver 版本对应关系 实践测试 操作元素 浏览器操作 获取元素信息 鼠标操作 实战demo selenium添加代理 Linux selenium配置 检查服务器环境 下载安装第三方库(最简单版) 实践测试 代码…...

力扣-从不订购的客户
大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目:183. 从不订购的客户二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果总结前言…...

速来!掘金数据时代2022年度隐私计算评选活动火热报名中!
开放隐私计算 开放隐私计算开放隐私计算OpenMPC是国内第一个且影响力最大的隐私计算开放社区。社区秉承开放共享的精神,专注于隐私计算行业的研究与布道。社区致力于隐私计算技术的传播,愿成为中国 “隐私计算最后一公里的服务区”。183篇原创内容公众号…...

Springboot @Test 给Controller接口 写 单元测试
前言 最近有小伙伴问到怎么给 controller的接口写单元测试。 单元测试是开发必不可少的一个环节。 既然有人问到了,那我觉得可能不止一个人不会,那就按照惯例,出手。 正文 内容: 主要是get 和 post 两种请求方式的接口 的 单元测…...
ISO 6721-1~12 ,塑料-电动机械性能的测定,2022更新
ISO 6721-1 :2019 Plastics - Determination of dynamic mechanical properties - Part 1: General principles ISO 6721-1 :2019 塑料 - 电动机械性能的测定. 第1部分:一般原理 ISO 6721-2 :2019 Plastics — Determination of dynamic mechanical properties — Part 2:…...

vue3.2中使用swiper缩略图轮播教程
介绍 在vue3 中使用 swiper 实现缩略图的轮播图效果,具体如下图所示: 使用 切换到项目终端 ,输入命令 npm install swiper --save , 进行安装在 main.js里,引入 swiper.css并使用,具体代码如下;import {createApp } from vue import App from ./App.vue import router…...

边玩边学,13个 Python 小游戏真有趣啊(含源码)
经常听到有朋友说,学习编程是一件非常枯燥无味的事情。其实,大家有没有认真想过,可能是我们的学习方法不对? 比方说,你有没有想过,可以通过打游戏来学编程? 今天我想跟大家分享几个Python小游…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...

前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...