关于

这个算法是在接触太空飞行计划问题时接触到的。为了解决这道问题,我在网上查阅了相当多的资料,在这里整理给大家。题目点击打开链接https://www.luogu.org/problemnew/show/P2762

开始

闭合图的含义,就是在一张图中,我们选取一些点构成集合,记为V,且集合中的出边所指向的终点也在V中,我们就称V为闭合图。也就是说,一张图中的点,他们的儿子也在这张图中。

像上面这张图,图中的闭合图就有(1,2,3,4),(1,2,3,4,5),(2,3),(2,3,5),(2,3,4),(2,3,4,5),(3),(3,5)。

对没错,而我们也可以把太空飞行计划问题转化为求最大权闭合子图的问题,正如给上图的每个点加上一个权值,如果是实验则为正,仪器则为负。如下图。

样例如上,那么我们从含义来找答案,闭合图是不是一定要满足儿子也在这个集合里面,就像题目中实验和仪器的关系一样。那么我们就可以马上建出上面这张图,明显的,最大权闭合图的值就是10+25-5-6-7=17;

很多人会说,你这么说谁都会,但是怎么用网路流来实现呢?

我们从begin连一条流量为权值的边到每个实验,从每个仪器连一条流量为权值的绝对值的边到end。

而原来的边的流量都改为INF。如下图。

我们先来阐明一个结论,最小割把整个网络分为两个部分,其中含begin的部分,我们称为V。含end的部分,我们称为P;在V中,除begin外为最大权闭合子图。

我们先来说明两个引理。

**1.最小割是简单割。

简单割指的是一个割中的边都与begin或end相关联。

因为把与begin相连的所有边为A割,而最小割肯定小于或等于A割,而如果最小割不是简单割,那么就包含流量为INF的边,又因为最小割小于或等于A割,所以矛盾。最小割为简单割。

**2.简单割与闭合图一一对应。

那么我们需要说明两个东西。

1.闭合图是由简单割割出来的,如果闭合图不是由简单割割出来的,那么说明割掉了一条流量为INF的边,所以这时闭合图中的某个点的所连边的终点不在集合中,矛盾。

2.简单割构成的一定是闭合图,因为简单割中不包含流量为INF的边,所以对于闭合图中的任意连边两点u,v,c(u,v)=INF;这条边不会被割掉,所以简单割构成的一定闭合图。

终极奥义,证明结论。

我们设一个东西C=V中的负权点的权值的绝对值+P中正权点的权值;(这个就是割集的边的权值和,因为这些东西都写在边上了,网络流的时候在点上是没有任何东西的。)

设W=V中的正权点的权值-V中负权点的权值的绝对值。

W+C=P中正权点的权值+V中正权点的权值。

那么W+C及为所有正权点的和。

设W+C=tot;那么我们知道C为割,W为我们要求的值,tot很明显不变。我们想尽量使我们要求的W尽量大,那么C就要尽量小,所以C就是最小割,我们跑一遍最大流就可以实现。

完了,题解专题中有写。谢谢,不懂评论问我。

学习笔记第二节:最大权闭合图相关推荐

  1. Core Animation学习笔记—第二节Setting up Layer Objects

    各位iOS开发大佬们好: 我是一名Swift+SwiftUI栈的iOS小白,目前还在上大三,最近准备实习,面试的过程中发现现在大公司很多还在用OC + UIKit的技术栈,OC我还在考虑要不要学,目前 ...

  2. Tensorflow学习笔记-第二节程序结构

    目录 TensorFlow程序分为两个独立的部分: 计算图: 计算图的执行: 简单实例--向量相加 程序模版 结果 分析: with语法: InteractiveSession 和 Session的区 ...

  3. python基础课程学习笔记-第二节课

    1.Python语⾔ 1.1 Python语⾔的基本概念 Python 是⼀种极少数能兼具 简单 与 功能强⼤ 的编程语⾔.你将惊异于发 现你正在使⽤的这⻔编程语⾔是如此简单,它专注于如何解决问题,⽽ ...

  4. CCSA学习笔记 第二节 搭建实验环境

    搭建CCSA实验环境 一.个人电脑的要求 1.CPU支持虚拟化 2.win10注意关闭更新 3.内存大于等于16G 二.关于EVE的资源分配 1.内存大于等于8G 2.CPU分配2个,必须激活虚拟化( ...

  5. [shiro学习笔记]第二节 shiro与web融合实现一个简单的授权认证

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/39933993 shiro官网: http://shiro.apache.org/ sh ...

  6. 贝加莱学习笔记第二节

    1.点击 setting---online-browser 可以搜索 plc 的地址 2.在 PLC 上有 PLC 的节点号,上面的那个是 16 的 1 次方,下面的是 16 的 0 次方. 3.cm ...

  7. UE4 Material 101学习笔记——08-12 凹凸和视差贴图/纹理压缩/布料/体积冰/摇曳树叶

    UE4 Material 101学习笔记--08-12 凹凸和视差贴图/纹理压缩/布料/体积冰/摇曳树叶 Lec08 凹凸和视差贴图 Bump Offset and Parallax Occlusio ...

  8. [go学习笔记.第二章] 2.go语言的开发工具以及安装和配置SDK

    一.工具介绍: 1.Visual Studio Code 一个运行于Mac,Windows,和linux上的,默认提供Go语言的语法高亮的IED,可以安装Go语言插件,还可以支持智能提示,编译运行等功 ...

  9. [北大肖臻-区块链技术与应用笔记]第二节课

    文章目录 [北大肖臻-区块链技术与应用笔记]第二节课 一.哈希指针 二.区块链 三.Merkle Tree 结点 参考资料 [北大肖臻-区块链技术与应用笔记]第二节课 一.哈希指针 普通的指针存储的是 ...

最新文章

  1. 报名 | “AI Time”系列论道知识图谱:知识赋能智能与智能产生知识
  2. 转载:keil中使用Astyle格式化你的代码的方法2篇合
  3. 宁波大学计算机网络,宁波大学计算机网络TCP与UDP题目
  4. vim使用帮助命令的方法
  5. apache设置网页gzip压缩(亲测可用)
  6. python中的逻辑量有什么_python逻辑运算符有哪些
  7. [原]ImportError: No module named thrift.Thrift问题解决
  8. Day07-函数(2)
  9. 你以为这样写代码很6,但我看不懂
  10. Python locals 函数 - Python零基础入门教程
  11. java 双等号(==) 与equals方法的介绍和区别
  12. 网页中查看pdf文档
  13. PD2SE-Net:植物病害诊断和严重性评估网络(首次)
  14. 获得iframe中的对象的方法
  15. tidyverse —— tidyr包
  16. 百行征信出首招,发布授信 反欺诈 核验三款测试产品
  17. 信号课组(一) 信号与系统 Review 1 信号与系统综述
  18. Detours使用方法,简单明了
  19. 浅谈软件需求分析中的参与者
  20. 解决仙剑奇侠传“应用程序无法正常启动(0xc000000d)”的问题【转载】

热门文章

  1. 树莓派温湿度与mysql,树莓派学习笔记——Python SQLite插入温度记录
  2. 未来三年最赚钱的一个机会
  3. 360集团产品校招面经
  4. Android Studio 报错 Unresolved class MainActivity解决方案
  5. Android 讯飞语音开发
  6. HTML5期末大作业:蛋糕甜品网站设计——蛋糕甜品(4页) HTML+CSS+JavaScript 美食甜品网页设计`零食小吃成品网页`生鲜水果
  7. c#winform调用VLC播放视频器控件
  8. VCSA证书过期处理
  9. jquery动态追加html,jQuery中几种动态追加元素的方法
  10. 创翼错误118 pppoe拨号模块损坏