二分图与Dilworth引理相关构造

(二分图)最大匹配=x

匈牙利或dinic
\[ S\to l: 1\\ l\to r: inf\\ r\to T: 1 \]
\(l\)\(r\)匹配 <==> 残余网络上 \(l\to r = inf-1\)

(网络图)最小割=最大流

\(S\)开始在残余网络上dfs,标记访问到的点

\((u,v)\)在最小割中 <==> \(u\)被标记,\(v\)没有被标记

(二分图)最大(权)独立点集=L+R-x

\[ S\to l: val[l]\\ l\to r: inf\\ r\to T: val[r] \]

原因:割掉的边一定是\(S\to l\)\(r\to T\), 割掉这条边代表这个点不选,所以总点权-最小割即为答案

(二分图)最小点覆盖=x

最大独立点集的补集

(DAG)最小链划分

对于每个点\(i\)拆成\(l_i,r_i\)两个点分别表示出,入

对于原图的边\((u,v)\)建立\((l_u,r_v)\)

答案即原图点数n-最大匹配

原因:一开始每个点都是一条链,\(l_u\to r_v\)匹配表示将\(u\)结尾的链和\(v\)开头的链合并

方案:\(l_u\to r_v\)匹配,表示\(u->v\)在其中一条链上。拓扑排序后dfs即可

(DAG)最小链覆盖=最大反链

\(引理Dilworth引理\)

\(可达u可达v\) 为偏序关系

链:两两之间可比的点集

反链:亮亮之间不可比的点集

最小链覆盖:求最少的链使得链的并为原图(与划分不同的是链之间可以有交集)

求法:用floyd求传递闭包后,再求最小链分割即可

最大反链:点数最大的反链

同求最小链覆盖,建出二分图

\(u\)在最大反链中 <==> \(l_u,r_u\)同时在最大独立集中

原因:

  1. 这些点一定构成反链。从其中取出任意两点,拆成的四个点都在最大独立集中,所以不存在连边。
  2. 这些点构成的反链一定最大。
    • 设该二分图最大匹配为\(x\),则 \(最小链覆盖最大反链最小链覆盖=最大反链=n-x\)
    • \(最大独立集最大独立集=2n-x\),所以必然存在至少\(n-x\)个点左右同时在最大独立集中

(DAG)最小反链覆盖=最长链

最小反链覆盖:拓扑排序后每一层极为一个反链

最长链:入门dp

二者相等显然

猜你喜欢

转载自www.cnblogs.com/Messuarez---10/p/10629293.html