首页 > 其他分享 >点覆盖 边覆盖 独立集 最大匹配 链划分 对应及构造

点覆盖 边覆盖 独立集 最大匹配 链划分 对应及构造

时间:2023-03-09 09:59:58浏览次数:33  
标签:DAG 匹配 最大 覆盖 路径 最小 边覆盖

发现不是很熟,所以整理一下。

无向图

  • 在任意无向图中,最大独立集和最小点覆盖互补。(指其中一个取反得到另一个)

二分图

  • König定理:二分图最小点覆盖大小等于最大匹配大小。

构造:从右边每个失配点走增广路,走到的点打标记。左侧的标记点和右侧的未标记点组成了最小点覆盖。

  • 二分图最小边覆盖等于最大独立集大小。

\(\geq\):每条边至多覆盖一个独立集中的点。

构造:选出所有匹配边,然后选出非匹配点任意选个邻边。

选的边数:点数 \(-\) 最大匹配 \(\Rightarrow\) 点数 \(-\) 最小点覆盖 \(\Rightarrow\) 最大独立集。

DAG

(点不相交,选出最少路径覆盖所有点)

对于图 \(G\),每个点复制一下,DAG 中有 \((u,v)\) 就连上左侧 \(u\) 和右侧 \(v\),得到二分图 \(H\).

  • \(G\) 的最小路径覆盖等于 \(n\) \(-\) \(H\) 的最大匹配

最大匹配中有什么边,最小路径覆盖中的路径就选择上哪条边。每次相当于将两个路径合并,所以是互补的。

有向图

最大权闭合子图转最小割:

超源连向正权(存在表示选),负权连向超汇(存在表示不选),权值均为点权绝对值。原图边为 inf.

Dilworth 定理:最长反链长度(两两不可比的最大集合)等于最小链覆盖大小(划分成尽量少的两两可比的集合)

注意:严谨的 Dilworth 定理定义在偏序集中,或者说是一个已经传递闭包后的 DAG,那么这里链覆盖能不能经过重复点是一样的。但如果在普通 DAG 中,并不去求它的传递闭包,不可比定义为不可达,那么这里链覆盖实际上就是点可以相交的路径覆盖。

也就是:传递闭包前,必须是点不能相交;传递闭包后无区分,都一样。所以可以传递闭包后跑上面那个 DAG 最小路径覆盖。

标签:DAG,匹配,最大,覆盖,路径,最小,边覆盖
From: https://www.cnblogs.com/do-while-true/p/17197184.html

相关文章

  • SQL覆盖写入 INSERT ON CONFLICT
    SQL覆盖写入INSERTONCONFLICTONCONFLICTDOUPDATESETcolumn_name={expression|DEFAULT}ONCONFLICTDOUPDATENOTHING[WITH[RECURSIVE]with_query......
  • .NET Github Actions 测试覆盖率
    如果熟悉GIthub我们经常可以在一些开源项目的PR上看到会配置测试的验证以及覆盖率的报告,并且可以强制覆盖率不低于设定的值才可以进行MergePR。1.测试创建一个xU......
  • 拆分逗号为数组,判断是否匹配
    拆分逗号为数组,判断是否匹配string[]array1="jankiE,aaA".Split(',');List<string>listLower=newList<string>();foreach(stringsinarray1){listLowe......
  • CentOS7使用cp命令覆盖时不提示
    平常使用中bbb这个文件存在,想要使用cp命令把aaa文件的内容覆盖到bbb文件中,就会使用cp-faaabbb-f 的意思是遇到同名的文件,不提示,直接覆盖但是还是会提示[roo......
  • 字符串匹配【北京航空航天大学考研机试题】
    字符串匹配给定一个包含n个字符串的字符串数组s1,s2,…,sn和一个短字符串p,找出字符串数组中所有能够和短字符串匹配的字符串。匹配时不区分大小写,短字符串中可能包......
  • .NET 使用 Coverlet 统计单元测试覆盖率
    代码覆盖率(Codecoverage)是指在软件测试中测试用例执行时覆盖的代码量与总代码量的比例。代码覆盖率是软件测试中一个重要的指标,它对于保障软件质量、提高软件可靠性和可维......
  • MFC-FindWindow获取与指定窗口类名和窗口名相匹配的最顶层窗口的窗口句柄
     HWNDhWnd2=GetSafeHwnd();::SetWindowText(hWnd2,_T("窗口句柄练习"));TCHARch[MAX_PATH]={0};CStringstr;HWNDhWnd=::F......
  • C++重写(覆盖)、重载、重定义、多态
    引用:https://www.cnblogs.com/DannyShi/p/4593735.html1重写(覆盖)overrideoverride是重写(覆盖)了一个方法,以实现不同的功能。一般用于子类在继承父类时,重写(覆盖)父类......
  • 字符串匹配【第二次CCF计算机软件能力认证】
    字符串匹配给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行。你的程序还需支持大小写敏感选项:当选项打开时,表示同一个字母的大写和小写看作不同的字符;当选......
  • 正则匹配原理之——逆序环视深入
    varstr="8912341253789";需要将这个字符串中的重复的数字给去掉,也就是结果89123457。首先需要说明的是,这种需求并不适合用正则来实现,至少,正则不是最好的实现方式。这个问题......