网络流24题 一句话题解(updating)
搭配飞行员问题
最简单的一道题
就是一个二分图匹配
太空飞行计划
最大权闭合子图
什么叫"最大权闭合子图"呢?
就是给定一个有向图,在里面选择一个点集,使得点集中的点没有连向点集外的点的边,并且每个点都有一个权值,使得这个点集的权值最大
我们把实验做成点,材料做成点,每个实验要用哪些材料我们就连上去
一个闭合子图就对应着一个方案,我们把实验的收益当成实验对应的点的权值,材料的花费的相反数当成材料对应的点的权值,然后就是最大权闭合子图了
怎么求解呢?
我们建立源点s和汇点t,将s向所有正权值的点连边,边权为这个权值,将所有负权值的点向t连边,边权为负权值的相反数,图内部的边边权设置为inf
然后跑一边最大流,正权值的和减去流量就是答案了
原理
首先我们看一个流对应的割
一个割的定义就是把点集分成两半,s在一个里面,t在另一个里面,不存在s到t的路径
再看闭合子图的定义,就是子图内部的点不能连向外部的点 那么我们就把内部的点和s放在一起,把剩下的点和t放在一起,因为定义,不存在S到T的边,所以这就是一个割
不难发现任何一个割都对应着一个闭合子图
我们要求的是闭合子图里面点的权值和,就是正权值的和-负权值的绝对值的和
那么这个割的大小是什么呢?
因为原图里面边的权值都是inf,所以割肯定割的是s连出去的边和连向t的边
那么子图内部的点和t之间没有边,子图外部的点和s之间没有边,我们假设闭合子图的点集为$set$,那么割的大小就是 $\sum_{u \notin set \& (s,u)\in E} {cost(s,u)}+\sum_{u \in set \& (u,t)\in E}cost(u,t)$
我们要计算的是$\sum_{u \in set \& (s,u)\in E} {cost(s,u)}-\sum_{u \in set \& (u,t)\in E}cost(u,t)$,不难发现这就等于$\sum_{u \in V \& (s,u) \in E}{cost(s,u)}$剪掉割的大小
前面那个是定值,所以只要求最小割就可以了
输出方案
流是如何转化为割的呢? 其实就是把满流的边割掉
所以我们再从s增广一次,能够增广到的点就是最终点集中的点
网络流24题 一句话题解(updating)的更多相关文章
- 【题解】【网络流24题】航空路线问题 [P2770] [Loj6122]
[题解][网络流24题]航空路线问题 [P2770] [Loj6122] 传送门:航空路线问题 \([P2770]\) \([Loj6122]\) [题目描述] 给出一张有向图,每个点(除了起点 \( ...
- 【题解】【网络流24题】汽车加油行驶问题 [P4009] [Loj6223]
[题解][网络流24题]汽车加油行驶问题 [P4009] [Loj6223] 传送门:汽车加油行驶问题 \([P4009]\) \([Loj6223]\) [题目描述] 给出一个 \(N \times ...
- [网络流24题]最长k可重区间集[题解]
最长 \(k\) 可重区间集 题目大意 给定实心直线 \(L\) 上 \(n\) 个开区间组成的集合 \(I\) ,和一个正整数 \(k\) ,试设计一个算法,从开区间集合 \(I\) 中选取开区间集 ...
- 【线性规划与网络流 24题】已完成(3道题因为某些奇怪的原因被抛弃了QAQ)
写在前面:SDOI2016 Round1滚粗后蒟蒻开始做网络流来自我拯救(2016-04-11再过几天就要考先修课,现在做网络流24题貌似没什么用←退役节奏) 做的题目将附上日期,见证我龟速刷题. 1 ...
- LOJ6000 - 「网络流 24 题」搭配飞行员
原题链接 题意简述 求二分图的最大匹配. 题解 这里写的是匈牙利算法. 表示节点的当前匹配. 为真表示在这一轮匹配中,无法给节点一个新的匹配.所以如果为真就不用再dfs它了,直接continue就好. ...
- 【网络流24题】最长k可重线段集(费用流)
[网络流24题]最长k可重线段集(费用流) 题面 Cogs的数据有问题 Loj 洛谷 题解 这道题和最长k可重区间集没有区别 只不过费用额外计算一下 但是,还是有一点要注意的地方 这里可以是一条垂直的 ...
- 【网络流24题】最长k可重区间集(费用流)
[网络流24题]最长k可重区间集(费用流) 题面 Cogs Loj 洛谷 题解 首先注意一下 这道题目里面 在Cogs上直接做就行了 洛谷和Loj上需要判断数据合法,如果\(l>r\)就要交换\ ...
- 【刷题】LOJ 6227 「网络流 24 题」最长k可重线段集问题
题目描述 给定平面 \(\text{xoy}\) 上 \(n\) 个开线段组成的集合 \(\text{I}\) ,和一个正整数 \(k\) ,试设计一个算法. 从开线段集合 \(\text{I}\) ...
- 【刷题】LOJ 6121 「网络流 24 题」孤岛营救问题
题目描述 1944 年,特种兵麦克接到国防部的命令,要求立即赶赴太平洋上的一个孤岛,营救被敌军俘虏的大兵瑞恩.瑞恩被关押在一个迷宫里,迷宫地形复杂,但幸好麦克得到了迷宫的地形图.迷宫的外形是一个长方形 ...
随机推荐
- linux PC手把手搭建minigui3.0开发环境
1.下载网址http://www.minigui.com/en/download/ 2.下载资料: 3.安装过程: (1)安装 libminigui-gpl-3.0.12.tar.gz tar zxv ...
- adb问题整理
1.开启了两个adb,关掉一个,重启eclipse既可 java.io.IOException: 您的主机中的软件中止了一个已建立的连接. at sun.nio.ch.SocketDispatcher ...
- Highmaps的天津地图数据JSON格式
Highmaps的天津地图数据JSON格式 Highmaps的天津地图数据JSON格式 下载链接: http://pan.baidu.com/s/1eQgxECU password: tjmj 天津地 ...
- 高仿webqq做的一个webos桌面效果和web聊天工具,桌面效果完好,功能强大
QQ技术交流群:159995692 /-------- 暂时开放的測试 帐号/password:[88888888/1;666666/1] ---------/ 正如大家所知的E ...
- string和int互相转化
1 如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([ ...
- O4编译 在 PingCAP 的一些技术挑战
在 PingCAP 的一些技术挑战 http://www.zenlife.tk/challenge-at-pingcap.md 在 PingCAP 的一些技术挑战 2018-06-02 事务优化 AC ...
- node-sass 安装失败win32-x64-48_binding.node
升级了nodejs的版本,原项目的node-sass模块启动安装不了. 下载对应的win32-x64-xx_binding.node https://github.com/sass/node-sass ...
- 解析SQL中的包含的列和表
using System; using System.IO; using System.Collections.Generic; namespace SQLProcess { class Progra ...
- css简单的数学运算
calc()是css3的一个新增的属性, .box{border:1px solid #ddd; width:calc(100% - 100px); background:#9AC8EB;} 兼容 ...
- php composer 相关及版本约束等小技巧
对于现代语言而言,包管理器基本上是标配.Java有Maven,Python有pip,Ruby有gem,Nodejs有npm.PHP的则是PEAR,不过PEAR坑不少: 依赖处理容易出问题 配置非常复杂 ...