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

CF1630F 题解 | 网络流

传送门

题意

给你一个长度为 \(n\) 的序列 \(a\),构建一个无向图:若 \(a_i | a_j\),则在 \(i\)\(j\) 中连边。

求最少删除多少个点,才能使得剩下的图是二分图。

思路

首先,我们知道倍数关系是一个偏序关系,即 \(a_i | a_j, a_j | a_k \rightarrow a_i | a_k\)

所以,一旦出现了一个长度 \(\ge 3\) 的链,那么就会出现奇环,就不可能是二分图。
也就是说,最后的图中每个点的度数都 \(le 1\),可以将边定向(不妨设是大的数向小的数连边),转换成每个点要么有入度,要么有出度。
考虑拆点,\(x_0\) 表示 \(x\) 这个数有出度,\(x_1\) 则表示这个点有入度。

拆点后,将互相矛盾的状态连边(无向边),得到一个新图,显然,这个图的最大独立集就是最后能保留下来最多的数个数。

但是,普通图的最大独立集是 NPC,考虑怎么转换这个图。
因为我们就是从一个有偏序关系的图得到的这个图,很自然地想让它也有偏序关系。

把这个图定向,变成有向图(大连向小),显然得到了一个 DAG,同时还是偏序集。
那么这个时候,答案是这个图的最大独立集,也是偏序集的最长反链。
根据 Dilworth 定理,可以转换为偏序集的最小链覆盖,做完了。

补充知识

最小链覆盖

即,在一个图上用最少的链覆盖这个图的所有边。

求法

拆点,将每个点拆成入点和出点。
把每条边转换,得到了一个二分图。

此时,每一个匹配都会将两个链合并,于是最小链覆盖 = 总点数 - 最大匹配 = 总点数 - 最大流

偏序集及相关知识

偏序集

若集合 \(S\) 和其上的一个二元关系 \(\preceq\) 满足性质:

  • 自反性:\(\forall a \in S, a \preceq a\)
  • 反对称性:\(\forall a, b \in S, a \preceq b \land b \preceq a \Rightarrow a = b\)
  • 传递性:\(\forall a, b, c \in S, a \preceq b \land b \preceq c \Rightarrow a \preceq c\)

\(S\) 是偏序集,\(\preceq\) 是其上的偏序。

一个显然的例子是 \(\mathbb{N}, \mathbb{Z}, \mathbb{Q}, \mathbb{R}\) 都关于二元关系 \(\leq\) 构成偏序。

全序集

类比偏序集理解。

若集合 \(S\) 和其上的一个二元关系 \(\preceq\) 满足性质:

  • 自反性:\(\forall a \in S, a \preceq a\)
  • 反对称性:\(\forall a, b \in S, a \preceq b \land b \preceq a \Rightarrow a = b\)
  • 传递性:\(\forall a, b, c \in S, a \preceq b \land b \preceq c \Rightarrow a \preceq c\)
  • 连接性:\(\forall a, b \in S, a \not = b \Rightarrow a \preceq b \lor b \preceq a\)

\(S\) 为全序集,\(\preceq\) 是其上的全序。

偏序集的链与反链

偏序集 \(S\) 上的链是其全序子图 \(T\),具体地,\(\forall a, b \in T, a \not = b \Rightarrow a \preceq b \lor b \preceq a\)
即链上的任意两点都可以比较(可以比较即在某一顺序上满足偏序关系)。

偏序集 \(S\) 上的反链是集合 \(T\) 满足,\(\forall a, b \in T, a \not = b \Rightarrow a \not \preceq b \land b \not \preceq a\)
即反链上任意两点都不可以比较。

http://www.hskmm.com/?act=detail&tid=8854

相关文章:

  • 攻防世界-secret-galaxy-300 - xxx
  • 实用指南:LeetCode 面试经典 150_哈希表_单词规律(41_290_C++_简单)
  • 数据库
  • 代码随想录算法训练营第二天 | leetcode 209
  • mpv硬件解码
  • 2025.9.78——卷6-8选择
  • 关于pytorch的读书报告
  • Emacs 折腾日记(三十)——打造C++ IDE 续
  • 数据结构 项目一
  • 好烦
  • 用 Go 语言与 Tesseract OCR 识别英文数字验证码
  • FreeRTOS和LVGL组合使用教程
  • Codeforces 1646 记录
  • 综合与实现流程【p3】--(DSP-存储)优化PS系统集成
  • Linux中 sed命令忽略大小写匹配
  • 【STL库】哈希封装 unordered_map/unordered_set - 教程
  • Pip换源
  • 7zip压缩解压缩-测试CPU性能
  • 高数
  • P5666 [CSP-S2019] 树的重心
  • Java运行机制
  • 除自身以外数组的乘积-leetcode
  • 【2022】SDRZ夏令营游记
  • rapidXML解析xml文件
  • office2024免费永久激活版下载安装教程:含激活步骤 + 一键安装包下载
  • 大学不止GPA
  • 大学目标
  • [论文笔记/评估方法] RELIABLE AND DIVERSE EVALUATION OF LLM MEDICAL KNOWLEDGE MASTERY
  • 本地VMware Workstation Pro的rhel-server-7.9-x86_64服务器配置本地源
  • 2025年十大AI网站构建工具:专家评测与推荐!