CF1525F妙法积累

life-of-a-libertine / 2024-10-13 / 原文

在一个有向无环图上,确定若干条链,每个点不重不漏分到一条链上,最小化链的个数。

其实就是要最大化链的边数。然后发现就是连的边需要满足每个点入度出度不超过 \(1\)。然后就可以建立一个,两边都是 \(1-n\) 的点,一条原图中的 \((u,v)\) 有向边,就从左部 \(u\) 连到右部 \(v\),求最大匹配。

然后有定理:如果删掉一个点,最大匹配最多减少 \(1\),且总是存在这样一种方案。

因为最大匹配和最小点覆盖一一对应,所以取最小点覆盖中一个被选中的点,删去剩下的图中最小点覆盖减一,最大匹配减一。

实际做的时候可以枚举点 \(O(n^3)\)